{"nbformat":4,"nbformat_minor":0,"metadata":{"accelerator":"GPU","colab":{"name":"CH08b_Working_with_Efficient_Self-attention.ipynb","provenance":[],"collapsed_sections":[],"machine_shape":"hm","authorship_tag":"ABX9TyOwwmNkOQe+xqfPnjxlJ+rT"},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"},"widgets":{"application/vnd.jupyter.widget-state+json":{"e672d81cf62b4d0ab7a4b7a386ff97bd":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","state":{"_view_name":"HBoxView","_dom_classes":[],"_model_name":"HBoxModel","_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.5.0","box_style":"","layout":"IPY_MODEL_bfe4b20bba21430d9c55c6dad62652a0","_model_module":"@jupyter-widgets/controls","children":["IPY_MODEL_1bc1ea50ed4f44fcbbdd8effacae293f","IPY_MODEL_51e87bd39e864df6b914c6d4130cb72a"]}},"bfe4b20bba21430d9c55c6dad62652a0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"1bc1ea50ed4f44fcbbdd8effacae293f":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","state":{"_view_name":"ProgressView","style":"IPY_MODEL_b28970d2d0e443e2a425da5b95439b9d","_dom_classes":[],"description":"Downloading: 100%","_model_name":"FloatProgressModel","bar_style":"success","max":898823,"_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","value":898823,"_view_count":null,"_view_module_version":"1.5.0","orientation":"horizontal","min":0,"description_tooltip":null,"_model_module":"@jupyter-widgets/controls","layout":"IPY_MODEL_d058bf6db0314230b5c33db188e68ebe"}},"51e87bd39e864df6b914c6d4130cb72a":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","state":{"_view_name":"HTMLView","style":"IPY_MODEL_a834c7c8d08144a098ac47472d7f209c","_dom_classes":[],"description":"","_model_name":"HTMLModel","placeholder":"​","_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","value":" 899k/899k [00:01&lt;00:00, 713kB/s]","_view_count":null,"_view_module_version":"1.5.0","description_tooltip":null,"_model_module":"@jupyter-widgets/controls","layout":"IPY_MODEL_f435ea1b2e7e4cc38690313078bd7d9e"}},"b28970d2d0e443e2a425da5b95439b9d":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","state":{"_view_name":"StyleView","_model_name":"ProgressStyleModel","description_width":"initial","_view_module":"@jupyter-widgets/base","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.2.0","bar_color":null,"_model_module":"@jupyter-widgets/controls"}},"d058bf6db0314230b5c33db188e68ebe":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"a834c7c8d08144a098ac47472d7f209c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","state":{"_view_name":"StyleView","_model_name":"DescriptionStyleModel","description_width":"","_view_module":"@jupyter-widgets/base","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.2.0","_model_module":"@jupyter-widgets/controls"}},"f435ea1b2e7e4cc38690313078bd7d9e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"98d142192c1840828bf2e7d66acd709d":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","state":{"_view_name":"HBoxView","_dom_classes":[],"_model_name":"HBoxModel","_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.5.0","box_style":"","layout":"IPY_MODEL_82941b37d6ab4daa9f6f4b18f3cd261e","_model_module":"@jupyter-widgets/controls","children":["IPY_MODEL_7957aa5502e846989feaff439e20ea6d","IPY_MODEL_85fd7907032f4439bc55e86ceb754578"]}},"82941b37d6ab4daa9f6f4b18f3cd261e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"7957aa5502e846989feaff439e20ea6d":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","state":{"_view_name":"ProgressView","style":"IPY_MODEL_164dad1115ea4c8489810a8d5dfc68c6","_dom_classes":[],"description":"Downloading: 100%","_model_name":"FloatProgressModel","bar_style":"success","max":456318,"_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","value":456318,"_view_count":null,"_view_module_version":"1.5.0","orientation":"horizontal","min":0,"description_tooltip":null,"_model_module":"@jupyter-widgets/controls","layout":"IPY_MODEL_cae09f68396d4b9eb38db9d671c2e2c9"}},"85fd7907032f4439bc55e86ceb754578":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","state":{"_view_name":"HTMLView","style":"IPY_MODEL_314943f2fdb24f079828bca0d19b638b","_dom_classes":[],"description":"","_model_name":"HTMLModel","placeholder":"​","_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","value":" 456k/456k [00:05&lt;00:00, 88.8kB/s]","_view_count":null,"_view_module_version":"1.5.0","description_tooltip":null,"_model_module":"@jupyter-widgets/controls","layout":"IPY_MODEL_c2916e9c92824981bf4793ef6c8742a1"}},"164dad1115ea4c8489810a8d5dfc68c6":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","state":{"_view_name":"StyleView","_model_name":"ProgressStyleModel","description_width":"initial","_view_module":"@jupyter-widgets/base","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.2.0","bar_color":null,"_model_module":"@jupyter-widgets/controls"}},"cae09f68396d4b9eb38db9d671c2e2c9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"314943f2fdb24f079828bca0d19b638b":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","state":{"_view_name":"StyleView","_model_name":"DescriptionStyleModel","description_width":"","_view_module":"@jupyter-widgets/base","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.2.0","_model_module":"@jupyter-widgets/controls"}},"c2916e9c92824981bf4793ef6c8742a1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"72c5949d3d3d48dba4d598edc8596789":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","state":{"_view_name":"HBoxView","_dom_classes":[],"_model_name":"HBoxModel","_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.5.0","box_style":"","layout":"IPY_MODEL_2970f173a51f43659c2f20641d3619d4","_model_module":"@jupyter-widgets/controls","children":["IPY_MODEL_73084ad0440f4c589673b542d03eded7","IPY_MODEL_6489b35f418a4ca8b889185f155bd074"]}},"2970f173a51f43659c2f20641d3619d4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"73084ad0440f4c589673b542d03eded7":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","state":{"_view_name":"ProgressView","style":"IPY_MODEL_1c76ae18e8a449939f4aa8ebeb84396d","_dom_classes":[],"description":"Downloading: 100%","_model_name":"FloatProgressModel","bar_style":"success","max":1355863,"_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","value":1355863,"_view_count":null,"_view_module_version":"1.5.0","orientation":"horizontal","min":0,"description_tooltip":null,"_model_module":"@jupyter-widgets/controls","layout":"IPY_MODEL_d221039210a84b64a9aedb9f688dbfc6"}},"6489b35f418a4ca8b889185f155bd074":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","state":{"_view_name":"HTMLView","style":"IPY_MODEL_28142b508e2f45f4921bad5cdcd64bdd","_dom_classes":[],"description":"","_model_name":"HTMLModel","placeholder":"​","_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","value":" 1.36M/1.36M [00:00&lt;00:00, 1.80MB/s]","_view_count":null,"_view_module_version":"1.5.0","description_tooltip":null,"_model_module":"@jupyter-widgets/controls","layout":"IPY_MODEL_ec539bbfad9941dc9564832bdb793b4c"}},"1c76ae18e8a449939f4aa8ebeb84396d":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","state":{"_view_name":"StyleView","_model_name":"ProgressStyleModel","description_width":"initial","_view_module":"@jupyter-widgets/base","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.2.0","bar_color":null,"_model_module":"@jupyter-widgets/controls"}},"d221039210a84b64a9aedb9f688dbfc6":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"28142b508e2f45f4921bad5cdcd64bdd":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","state":{"_view_name":"StyleView","_model_name":"DescriptionStyleModel","description_width":"","_view_module":"@jupyter-widgets/base","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.2.0","_model_module":"@jupyter-widgets/controls"}},"ec539bbfad9941dc9564832bdb793b4c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"a395e7b57d104555b13da4f3995dadb2":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","state":{"_view_name":"HBoxView","_dom_classes":[],"_model_name":"HBoxModel","_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.5.0","box_style":"","layout":"IPY_MODEL_f3e029aced5e4a509146cb84ba9ad125","_model_module":"@jupyter-widgets/controls","children":["IPY_MODEL_62e4dafe08514220b2eb39ceb912ebf2","IPY_MODEL_97aa3b30a97047b48f25af7ac9d5e498"]}},"f3e029aced5e4a509146cb84ba9ad125":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"62e4dafe08514220b2eb39ceb912ebf2":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","state":{"_view_name":"ProgressView","style":"IPY_MODEL_4a1fdf823c324b739f9397bc0ca6d58a","_dom_classes":[],"description":"Downloading: 100%","_model_name":"FloatProgressModel","bar_style":"success","max":694,"_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","value":694,"_view_count":null,"_view_module_version":"1.5.0","orientation":"horizontal","min":0,"description_tooltip":null,"_model_module":"@jupyter-widgets/controls","layout":"IPY_MODEL_f9ebabbb13a64a8599ebb2009f2e7f0f"}},"97aa3b30a97047b48f25af7ac9d5e498":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","state":{"_view_name":"HTMLView","style":"IPY_MODEL_705c722edccd4464813fec6bf4b6cdb1","_dom_classes":[],"description":"","_model_name":"HTMLModel","placeholder":"​","_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","value":" 694/694 [00:52&lt;00:00, 13.2B/s]","_view_count":null,"_view_module_version":"1.5.0","description_tooltip":null,"_model_module":"@jupyter-widgets/controls","layout":"IPY_MODEL_e110c7cc736e403a9a50bbeb62498f8e"}},"4a1fdf823c324b739f9397bc0ca6d58a":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","state":{"_view_name":"StyleView","_model_name":"ProgressStyleModel","description_width":"initial","_view_module":"@jupyter-widgets/base","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.2.0","bar_color":null,"_model_module":"@jupyter-widgets/controls"}},"f9ebabbb13a64a8599ebb2009f2e7f0f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"705c722edccd4464813fec6bf4b6cdb1":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","state":{"_view_name":"StyleView","_model_name":"DescriptionStyleModel","description_width":"","_view_module":"@jupyter-widgets/base","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.2.0","_model_module":"@jupyter-widgets/controls"}},"e110c7cc736e403a9a50bbeb62498f8e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"9c3d7a5384cc4efa8d8bb2f6141142cd":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","state":{"_view_name":"HBoxView","_dom_classes":[],"_model_name":"HBoxModel","_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.5.0","box_style":"","layout":"IPY_MODEL_ab0762f959704142b00630e9c871b559","_model_module":"@jupyter-widgets/controls","children":["IPY_MODEL_ba30d6ffd2a24a63b318d3a2e892c2fe","IPY_MODEL_d6a54164a747482baf9515fdb6a85a0c"]}},"ab0762f959704142b00630e9c871b559":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"ba30d6ffd2a24a63b318d3a2e892c2fe":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","state":{"_view_name":"ProgressView","style":"IPY_MODEL_a39c86078e4d40d3bb242cbcc4448877","_dom_classes":[],"description":"Downloading: 100%","_model_name":"FloatProgressModel","bar_style":"success","max":597257159,"_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","value":597257159,"_view_count":null,"_view_module_version":"1.5.0","orientation":"horizontal","min":0,"description_tooltip":null,"_model_module":"@jupyter-widgets/controls","layout":"IPY_MODEL_7dd0852d8ec54b64b25b47fcf48d1e62"}},"d6a54164a747482baf9515fdb6a85a0c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","state":{"_view_name":"HTMLView","style":"IPY_MODEL_554f3d846cd548fab83b094ec132e1f0","_dom_classes":[],"description":"","_model_name":"HTMLModel","placeholder":"​","_view_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","value":" 597M/597M [00:49&lt;00:00, 12.0MB/s]","_view_count":null,"_view_module_version":"1.5.0","description_tooltip":null,"_model_module":"@jupyter-widgets/controls","layout":"IPY_MODEL_464ccb6e5a9e45caa1a99f50ea2f4ebb"}},"a39c86078e4d40d3bb242cbcc4448877":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","state":{"_view_name":"StyleView","_model_name":"ProgressStyleModel","description_width":"initial","_view_module":"@jupyter-widgets/base","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.2.0","bar_color":null,"_model_module":"@jupyter-widgets/controls"}},"7dd0852d8ec54b64b25b47fcf48d1e62":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}},"554f3d846cd548fab83b094ec132e1f0":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","state":{"_view_name":"StyleView","_model_name":"DescriptionStyleModel","description_width":"","_view_module":"@jupyter-widgets/base","_model_module_version":"1.5.0","_view_count":null,"_view_module_version":"1.2.0","_model_module":"@jupyter-widgets/controls"}},"464ccb6e5a9e45caa1a99f50ea2f4ebb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","state":{"_view_name":"LayoutView","grid_template_rows":null,"right":null,"justify_content":null,"_view_module":"@jupyter-widgets/base","overflow":null,"_model_module_version":"1.2.0","_view_count":null,"flex_flow":null,"width":null,"min_width":null,"border":null,"align_items":null,"bottom":null,"_model_module":"@jupyter-widgets/base","top":null,"grid_column":null,"overflow_y":null,"overflow_x":null,"grid_auto_flow":null,"grid_area":null,"grid_template_columns":null,"flex":null,"_model_name":"LayoutModel","justify_items":null,"grid_row":null,"max_height":null,"align_content":null,"visibility":null,"align_self":null,"height":null,"min_height":null,"padding":null,"grid_auto_rows":null,"grid_gap":null,"max_width":null,"order":null,"_view_module_version":"1.2.0","grid_template_areas":null,"object_position":null,"object_fit":null,"grid_auto_columns":null,"margin":null,"display":null,"left":null}}}}},"cells":[{"cell_type":"markdown","metadata":{"id":"i9N_uuZ9TvKe"},"source":["# CH08b Working_with_Efficient_Self-attention"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"b4ictNq_Twn2","executionInfo":{"status":"ok","timestamp":1625429431759,"user_tz":-180,"elapsed":7521,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"fb2bf8ce-915b-4e70-e535-1bb617d0054f"},"source":["!pip install transformers\n","!pip install py3nvml"],"execution_count":9,"outputs":[{"output_type":"stream","text":["Requirement already satisfied: transformers in /usr/local/lib/python3.7/dist-packages (4.8.2)\n","Requirement already satisfied: sacremoses in /usr/local/lib/python3.7/dist-packages (from transformers) (0.0.45)\n","Requirement already satisfied: huggingface-hub==0.0.12 in /usr/local/lib/python3.7/dist-packages (from transformers) (0.0.12)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from transformers) (3.0.12)\n","Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (2019.12.20)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.7/dist-packages (from transformers) (4.41.1)\n","Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from transformers) (3.13)\n","Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from transformers) (20.9)\n","Requirement already satisfied: importlib-metadata; python_version < \"3.8\" in /usr/local/lib/python3.7/dist-packages (from transformers) (4.5.0)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (1.19.5)\n","Requirement already satisfied: tokenizers<0.11,>=0.10.1 in /usr/local/lib/python3.7/dist-packages (from transformers) (0.10.3)\n","Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from transformers) (2.23.0)\n","Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.0.1)\n","Requirement already satisfied: click in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (7.1.2)\n","Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.15.0)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from huggingface-hub==0.0.12->transformers) (3.7.4.3)\n","Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging->transformers) (2.4.7)\n","Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata; python_version < \"3.8\"->transformers) (3.4.1)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2021.5.30)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2.10)\n","Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (1.24.3)\n","Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (3.0.4)\n","Requirement already satisfied: py3nvml in /usr/local/lib/python3.7/dist-packages (0.2.6)\n","Requirement already satisfied: xmltodict in /usr/local/lib/python3.7/dist-packages (from py3nvml) (0.12.0)\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"Y57EvjQIp0vn"},"source":["We see the quadratic relationship $\\mathcal{O}(n^2)$ between input sequence and peak memory usage, as the sequence length gets long. \n","Let us check the memory usage and make sure no running processes"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"jPAMNb-CmDEb","executionInfo":{"status":"ok","timestamp":1625429437684,"user_tz":-180,"elapsed":1881,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"226fb291-2379-47bd-842e-907295faaf99"},"source":["!nvidia-smi"],"execution_count":10,"outputs":[{"output_type":"stream","text":["Sun Jul  4 20:10:33 2021       \n","+-----------------------------------------------------------------------------+\n","| NVIDIA-SMI 465.27       Driver Version: 460.32.03    CUDA Version: 11.2     |\n","|-------------------------------+----------------------+----------------------+\n","| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\n","| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\n","|                               |                      |               MIG M. |\n","|===============================+======================+======================|\n","|   0  Tesla P100-PCIE...  Off  | 00000000:00:04.0 Off |                    0 |\n","| N/A   36C    P0    25W / 250W |      0MiB / 16280MiB |      0%      Default |\n","|                               |                      |                  N/A |\n","+-------------------------------+----------------------+----------------------+\n","                                                                               \n","+-----------------------------------------------------------------------------+\n","| Processes:                                                                  |\n","|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\n","|        ID   ID                                                   Usage      |\n","|=============================================================================|\n","|  No running processes found                                                 |\n","+-----------------------------------------------------------------------------+\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"mXqi53-rncCk"},"source":["# Longformer"]},{"cell_type":"markdown","metadata":{"id":"BepSZek5vlc6"},"source":[""]},{"cell_type":"code","metadata":{"id":"avmMEhBTPeqC","executionInfo":{"status":"ok","timestamp":1625429442065,"user_tz":-180,"elapsed":5,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":[""],"execution_count":10,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":350,"referenced_widgets":["e672d81cf62b4d0ab7a4b7a386ff97bd","bfe4b20bba21430d9c55c6dad62652a0","1bc1ea50ed4f44fcbbdd8effacae293f","51e87bd39e864df6b914c6d4130cb72a","b28970d2d0e443e2a425da5b95439b9d","d058bf6db0314230b5c33db188e68ebe","a834c7c8d08144a098ac47472d7f209c","f435ea1b2e7e4cc38690313078bd7d9e","98d142192c1840828bf2e7d66acd709d","82941b37d6ab4daa9f6f4b18f3cd261e","7957aa5502e846989feaff439e20ea6d","85fd7907032f4439bc55e86ceb754578","164dad1115ea4c8489810a8d5dfc68c6","cae09f68396d4b9eb38db9d671c2e2c9","314943f2fdb24f079828bca0d19b638b","c2916e9c92824981bf4793ef6c8742a1","72c5949d3d3d48dba4d598edc8596789","2970f173a51f43659c2f20641d3619d4","73084ad0440f4c589673b542d03eded7","6489b35f418a4ca8b889185f155bd074","1c76ae18e8a449939f4aa8ebeb84396d","d221039210a84b64a9aedb9f688dbfc6","28142b508e2f45f4921bad5cdcd64bdd","ec539bbfad9941dc9564832bdb793b4c","a395e7b57d104555b13da4f3995dadb2","f3e029aced5e4a509146cb84ba9ad125","62e4dafe08514220b2eb39ceb912ebf2","97aa3b30a97047b48f25af7ac9d5e498","4a1fdf823c324b739f9397bc0ca6d58a","f9ebabbb13a64a8599ebb2009f2e7f0f","705c722edccd4464813fec6bf4b6cdb1","e110c7cc736e403a9a50bbeb62498f8e","9c3d7a5384cc4efa8d8bb2f6141142cd","ab0762f959704142b00630e9c871b559","ba30d6ffd2a24a63b318d3a2e892c2fe","d6a54164a747482baf9515fdb6a85a0c","a39c86078e4d40d3bb242cbcc4448877","7dd0852d8ec54b64b25b47fcf48d1e62","554f3d846cd548fab83b094ec132e1f0","464ccb6e5a9e45caa1a99f50ea2f4ebb"]},"id":"MzbkCIFwVR8E","executionInfo":{"status":"ok","timestamp":1625429518204,"user_tz":-180,"elapsed":76143,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"e256df18-b671-48c6-a877-f5d9b62104cc"},"source":["from transformers import LongformerTokenizer, LongformerModel\n","import torch\n","tokenizer = LongformerTokenizer.from_pretrained(\n","    'allenai/longformer-base-4096')\n","model = LongformerModel.from_pretrained(\n","    'allenai/longformer-base-4096')\n","sequence= \"hello \"*4093\n","inputs = tokenizer(sequence, return_tensors=\"pt\")\n","print(\"input shape: \",inputs.input_ids.shape)\n","outputs = model(**inputs)"],"execution_count":11,"outputs":[{"output_type":"display_data","data":{"application/vnd.jupyter.widget-view+json":{"model_id":"e672d81cf62b4d0ab7a4b7a386ff97bd","version_minor":0,"version_major":2},"text/plain":["HBox(children=(FloatProgress(value=0.0, description='Downloading', max=898823.0, style=ProgressStyle(descripti…"]},"metadata":{"tags":[]}},{"output_type":"stream","text":["\n"],"name":"stdout"},{"output_type":"display_data","data":{"application/vnd.jupyter.widget-view+json":{"model_id":"98d142192c1840828bf2e7d66acd709d","version_minor":0,"version_major":2},"text/plain":["HBox(children=(FloatProgress(value=0.0, description='Downloading', max=456318.0, style=ProgressStyle(descripti…"]},"metadata":{"tags":[]}},{"output_type":"stream","text":["\n"],"name":"stdout"},{"output_type":"display_data","data":{"application/vnd.jupyter.widget-view+json":{"model_id":"72c5949d3d3d48dba4d598edc8596789","version_minor":0,"version_major":2},"text/plain":["HBox(children=(FloatProgress(value=0.0, description='Downloading', max=1355863.0, style=ProgressStyle(descript…"]},"metadata":{"tags":[]}},{"output_type":"stream","text":["\n"],"name":"stdout"},{"output_type":"display_data","data":{"application/vnd.jupyter.widget-view+json":{"model_id":"a395e7b57d104555b13da4f3995dadb2","version_minor":0,"version_major":2},"text/plain":["HBox(children=(FloatProgress(value=0.0, description='Downloading', max=694.0, style=ProgressStyle(description_…"]},"metadata":{"tags":[]}},{"output_type":"stream","text":["\n"],"name":"stdout"},{"output_type":"display_data","data":{"application/vnd.jupyter.widget-view+json":{"model_id":"9c3d7a5384cc4efa8d8bb2f6141142cd","version_minor":0,"version_major":2},"text/plain":["HBox(children=(FloatProgress(value=0.0, description='Downloading', max=597257159.0, style=ProgressStyle(descri…"]},"metadata":{"tags":[]}},{"output_type":"stream","text":["\n"],"name":"stdout"},{"output_type":"stream","text":["Some weights of the model checkpoint at allenai/longformer-base-4096 were not used when initializing LongformerModel: ['lm_head.decoder.weight', 'lm_head.bias', 'lm_head.layer_norm.weight', 'lm_head.layer_norm.bias', 'lm_head.dense.weight', 'lm_head.dense.bias']\n","- This IS expected if you are initializing LongformerModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n","- This IS NOT expected if you are initializing LongformerModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n"],"name":"stderr"},{"output_type":"stream","text":["input shape:  torch.Size([1, 4096])\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"E3XPLJfqWTsb","executionInfo":{"status":"ok","timestamp":1625429518208,"user_tz":-180,"elapsed":23,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":[""],"execution_count":11,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"8sBPlqxl2UII"},"source":["As you pass a sequence whose length is more than 4096 you will get \"IndexError: index out of range in self\" "]},{"cell_type":"code","metadata":{"id":"wZZKnKreYq9B","executionInfo":{"status":"ok","timestamp":1625429525162,"user_tz":-180,"elapsed":6976,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":["# default attention window size is 512\n","# Window size refers to the size of an attention window around each token.\n","from transformers import LongformerConfig, \\\n","     PyTorchBenchmark, PyTorchBenchmarkArguments\n","config_longformer=LongformerConfig.from_pretrained(\n","    \"allenai/longformer-base-4096\")\n","config_longformer_window4=LongformerConfig.from_pretrained(\n","    \"allenai/longformer-base-4096\", \n","    attention_window=4)"],"execution_count":12,"outputs":[]},{"cell_type":"code","metadata":{"id":"drFvhJ8NWj6K","executionInfo":{"status":"ok","timestamp":1625429525163,"user_tz":-180,"elapsed":16,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":[""],"execution_count":12,"outputs":[]},{"cell_type":"code","metadata":{"id":"Bg6dkogKt4ph","executionInfo":{"status":"ok","timestamp":1625429525163,"user_tz":-180,"elapsed":15,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":["sequence_lengths=[128,256,512,1024,2048,4096]\n","models=[\"config_longformer\",\"config_longformer_window4\"]\n","configs=[eval(m) for m in models]"],"execution_count":13,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"h_pqcnjEiBzv","executionInfo":{"status":"ok","timestamp":1625429682872,"user_tz":-180,"elapsed":151531,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"b2c82394-4fb3-45a6-b09c-2023786ba885"},"source":["benchmark_args = PyTorchBenchmarkArguments(\n","    sequence_lengths= sequence_lengths, \n","    batch_sizes=[1], \n","    models= models)\n","benchmark = PyTorchBenchmark(\n","    configs=configs, \n","    args=benchmark_args)\n","results = benchmark.run()"],"execution_count":14,"outputs":[{"output_type":"stream","text":["1 / 2\n","2 / 2\n","\n","====================       INFERENCE - SPEED - RESULT       ====================\n","--------------------------------------------------------------------------------\n","          Model Name             Batch Size     Seq Length     Time in s   \n","--------------------------------------------------------------------------------\n","      config_longformer              1              128            0.036     \n","      config_longformer              1              256            0.036     \n","      config_longformer              1              512            0.036     \n","      config_longformer              1              1024           0.065     \n","      config_longformer              1              2048           0.119     \n","      config_longformer              1              4096            0.23     \n","  config_longformer_window4          1              128            0.018     \n","  config_longformer_window4          1              256            0.022     \n","  config_longformer_window4          1              512            0.028     \n","  config_longformer_window4          1              1024           0.044     \n","  config_longformer_window4          1              2048           0.074     \n","  config_longformer_window4          1              4096           0.136     \n","--------------------------------------------------------------------------------\n","\n","====================      INFERENCE - MEMORY - RESULT       ====================\n","--------------------------------------------------------------------------------\n","          Model Name             Batch Size     Seq Length    Memory in MB \n","--------------------------------------------------------------------------------\n","      config_longformer              1              128             1617     \n","      config_longformer              1              256             1617     \n","      config_longformer              1              512             1617     \n","      config_longformer              1              1024            1701     \n","      config_longformer              1              2048            1815     \n","      config_longformer              1              4096            2111     \n","  config_longformer_window4          1              128             1547     \n","  config_longformer_window4          1              256             1549     \n","  config_longformer_window4          1              512             1563     \n","  config_longformer_window4          1              1024            1583     \n","  config_longformer_window4          1              2048            1665     \n","  config_longformer_window4          1              4096            1785     \n","--------------------------------------------------------------------------------\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"cNs6H4iSavUi","executionInfo":{"status":"ok","timestamp":1625429682873,"user_tz":-180,"elapsed":22,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":[""],"execution_count":14,"outputs":[]},{"cell_type":"code","metadata":{"id":"IW0lFEmVZ0Ng","executionInfo":{"status":"ok","timestamp":1625430335753,"user_tz":-180,"elapsed":690,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":["import matplotlib.pyplot as plt \n","\n","def plotMe(results,title=\"Time\"):\n","    plt.figure(figsize=(8,8))\n","    fmts= [\"rs--\",\"go--\",\"b+-\",\"c-o\"]\n","    q=results.memory_inference_result\n","    if title==\"Time\": \n","        q=results.time_inference_result\n","    models=list(q.keys())\n","    seq=list(q[models[0]]['result'][1].keys())\n","    models_perf=[list(q[m]['result'][1].values()) for m in models] \n","    plt.xlabel('Sequence Length') \n","    plt.ylabel(title) \n","    plt.title('Inference Result') \n","    for perf,fmt in zip(models_perf,fmts):\n","        plt.plot(seq, perf,fmt)\n","    plt.legend(models)  \n","    plt.show() "],"execution_count":1,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"HNxAX-Dblr9b"},"source":["Speed Test"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":513},"id":"6C767ADKk9Yl","executionInfo":{"status":"ok","timestamp":1625429701431,"user_tz":-180,"elapsed":1381,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"9501698d-3631-4f0a-cad3-60392e3c7007"},"source":["plotMe(results)"],"execution_count":16,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 576x576 with 1 Axes>"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"code","metadata":{"id":"NfLlub0PltdF","executionInfo":{"status":"ok","timestamp":1625429707885,"user_tz":-180,"elapsed":5,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":[""],"execution_count":16,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"LIrkoaElltzj"},"source":["Memory Test"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":513},"id":"zHl-926SgX2R","executionInfo":{"status":"ok","timestamp":1625429709984,"user_tz":-180,"elapsed":1484,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"64611f1e-54b4-456c-e922-d5e39a9a8d0c"},"source":["plotMe(results,\"Memory\")"],"execution_count":17,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 576x576 with 1 Axes>"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"markdown","metadata":{"id":"uB2Yc3f5mD2G"},"source":["## BigBird"]},{"cell_type":"code","metadata":{"id":"wPEjSWKHmGY6","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1625429829695,"user_tz":-180,"elapsed":5258,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"92fd1994-f8de-4aa0-d7f2-ace811c84f24"},"source":["# pip installs\n","!pip install transformers\n","!pip install py3nvml"],"execution_count":1,"outputs":[{"output_type":"stream","text":["Requirement already satisfied: transformers in /usr/local/lib/python3.7/dist-packages (4.8.2)\n","Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (2019.12.20)\n","Requirement already satisfied: tokenizers<0.11,>=0.10.1 in /usr/local/lib/python3.7/dist-packages (from transformers) (0.10.3)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from transformers) (3.0.12)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (1.19.5)\n","Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from transformers) (20.9)\n","Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from transformers) (3.13)\n","Requirement already satisfied: huggingface-hub==0.0.12 in /usr/local/lib/python3.7/dist-packages (from transformers) (0.0.12)\n","Requirement already satisfied: importlib-metadata; python_version < \"3.8\" in /usr/local/lib/python3.7/dist-packages (from transformers) (4.5.0)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.7/dist-packages (from transformers) (4.41.1)\n","Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from transformers) (2.23.0)\n","Requirement already satisfied: sacremoses in /usr/local/lib/python3.7/dist-packages (from transformers) (0.0.45)\n","Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging->transformers) (2.4.7)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from huggingface-hub==0.0.12->transformers) (3.7.4.3)\n","Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata; python_version < \"3.8\"->transformers) (3.4.1)\n","Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (3.0.4)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2021.5.30)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2.10)\n","Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (1.24.3)\n","Requirement already satisfied: click in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (7.1.2)\n","Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.15.0)\n","Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.0.1)\n","Requirement already satisfied: py3nvml in /usr/local/lib/python3.7/dist-packages (0.2.6)\n","Requirement already satisfied: xmltodict in /usr/local/lib/python3.7/dist-packages (from py3nvml) (0.12.0)\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"t9d2BYDK0Ekx","executionInfo":{"status":"ok","timestamp":1625429832254,"user_tz":-180,"elapsed":2564,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":["from transformers import BigBirdConfig\n","\n","# Default Bird  with num_random_blocks=3, block_size=64\n","sparseBird = BigBirdConfig.from_pretrained(\"google/bigbird-roberta-base\")\n","# Fuyll attention Bird:\n","fullBird = BigBirdConfig.from_pretrained(\n","    \"google/bigbird-roberta-base\", \n","    attention_type=\"original_full\")"],"execution_count":2,"outputs":[]},{"cell_type":"code","metadata":{"id":"5mdzP7uD0u1r","executionInfo":{"status":"ok","timestamp":1625429833302,"user_tz":-180,"elapsed":1062,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":["from transformers import PyTorchBenchmark, PyTorchBenchmarkArguments"],"execution_count":3,"outputs":[]},{"cell_type":"code","metadata":{"id":"mxWAdqGWpxw6","executionInfo":{"status":"ok","timestamp":1625429833304,"user_tz":-180,"elapsed":15,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":["sequence_lengths=[256,512,1024,2048, 3072, 4096]\n","models=[\"sparseBird\",\"fullBird\"]\n","configs=[eval(m) for m in models]"],"execution_count":4,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"poHk0BT-mghN"},"source":["For smaller sequence lengths, The BigBird Model works with full-attention model due to block-size and seq-length inconsistency     "]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ABnrMeBN0YHa","executionInfo":{"status":"ok","timestamp":1625430027671,"user_tz":-180,"elapsed":194380,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"f785b0be-b15a-4fd1-f63f-84ebe9642418"},"source":["benchmark_args = PyTorchBenchmarkArguments(\n","    sequence_lengths=sequence_lengths,\n","    batch_sizes=[1],\n","    models=models)\n","benchmark = PyTorchBenchmark(\n","    configs=configs, \n","    args=benchmark_args)\n","results = benchmark.run()"],"execution_count":5,"outputs":[{"output_type":"stream","text":["1 / 2\n"],"name":"stdout"},{"output_type":"stream","text":["Attention type 'block_sparse' is not possible if sequence_length: 256 <= num global tokens: 2 * config.block_size + min. num sliding tokens: 3 * config.block_size + config.num_random_blocks * config.block_size + additional buffer: config.num_random_blocks * config.block_size = 704 with config.block_size = 64, config.num_random_blocks = 3.Changing attention type to 'original_full'...\n","Attention type 'block_sparse' is not possible if sequence_length: 256 <= num global tokens: 2 * config.block_size + min. num sliding tokens: 3 * config.block_size + config.num_random_blocks * config.block_size + additional buffer: config.num_random_blocks * config.block_size = 704 with config.block_size = 64, config.num_random_blocks = 3.Changing attention type to 'original_full'...\n","Attention type 'block_sparse' is not possible if sequence_length: 512 <= num global tokens: 2 * config.block_size + min. num sliding tokens: 3 * config.block_size + config.num_random_blocks * config.block_size + additional buffer: config.num_random_blocks * config.block_size = 704 with config.block_size = 64, config.num_random_blocks = 3.Changing attention type to 'original_full'...\n","Attention type 'block_sparse' is not possible if sequence_length: 512 <= num global tokens: 2 * config.block_size + min. num sliding tokens: 3 * config.block_size + config.num_random_blocks * config.block_size + additional buffer: config.num_random_blocks * config.block_size = 704 with config.block_size = 64, config.num_random_blocks = 3.Changing attention type to 'original_full'...\n","/usr/local/lib/python3.7/dist-packages/torch/_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values.\n","To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at  /pytorch/aten/src/ATen/native/BinaryOps.cpp:467.)\n","  return torch.floor_divide(self, other)\n","/usr/local/lib/python3.7/dist-packages/torch/_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values.\n","To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at  /pytorch/aten/src/ATen/native/BinaryOps.cpp:467.)\n","  return torch.floor_divide(self, other)\n","/usr/local/lib/python3.7/dist-packages/torch/_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values.\n","To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at  /pytorch/aten/src/ATen/native/BinaryOps.cpp:467.)\n","  return torch.floor_divide(self, other)\n","/usr/local/lib/python3.7/dist-packages/torch/_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values.\n","To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at  /pytorch/aten/src/ATen/native/BinaryOps.cpp:467.)\n","  return torch.floor_divide(self, other)\n","/usr/local/lib/python3.7/dist-packages/torch/_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values.\n","To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at  /pytorch/aten/src/ATen/native/BinaryOps.cpp:467.)\n","  return torch.floor_divide(self, other)\n","/usr/local/lib/python3.7/dist-packages/torch/_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values.\n","To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at  /pytorch/aten/src/ATen/native/BinaryOps.cpp:467.)\n","  return torch.floor_divide(self, other)\n","/usr/local/lib/python3.7/dist-packages/torch/_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values.\n","To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at  /pytorch/aten/src/ATen/native/BinaryOps.cpp:467.)\n","  return torch.floor_divide(self, other)\n","/usr/local/lib/python3.7/dist-packages/torch/_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values.\n","To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at  /pytorch/aten/src/ATen/native/BinaryOps.cpp:467.)\n","  return torch.floor_divide(self, other)\n"],"name":"stderr"},{"output_type":"stream","text":["2 / 2\n","\n","====================       INFERENCE - SPEED - RESULT       ====================\n","--------------------------------------------------------------------------------\n","          Model Name             Batch Size     Seq Length     Time in s   \n","--------------------------------------------------------------------------------\n","          sparseBird                 1              256            0.015     \n","          sparseBird                 1              512            0.028     \n","          sparseBird                 1              1024           0.088     \n","          sparseBird                 1              2048           0.224     \n","          sparseBird                 1              3072           0.213     \n","          sparseBird                 1              4096           0.274     \n","           fullBird                  1              256            0.012     \n","           fullBird                  1              512            0.021     \n","           fullBird                  1              1024           0.046     \n","           fullBird                  1              2048           0.117     \n","           fullBird                  1              3072           0.221     \n","           fullBird                  1              4096           0.333     \n","--------------------------------------------------------------------------------\n","\n","====================      INFERENCE - MEMORY - RESULT       ====================\n","--------------------------------------------------------------------------------\n","          Model Name             Batch Size     Seq Length    Memory in MB \n","--------------------------------------------------------------------------------\n","          sparseBird                 1              256             1517     \n","          sparseBird                 1              512             1573     \n","          sparseBird                 1              1024            1799     \n","          sparseBird                 1              2048            2193     \n","          sparseBird                 1              3072            2577     \n","          sparseBird                 1              4096            2943     \n","           fullBird                  1              256             1517     \n","           fullBird                  1              512             1573     \n","           fullBird                  1              1024            1823     \n","           fullBird                  1              2048            2279     \n","           fullBird                  1              3072            2977     \n","           fullBird                  1              4096            3857     \n","--------------------------------------------------------------------------------\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"thKk3XTjd_t_"},"source":[""],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"Ph2JVYJr0EnE","colab":{"base_uri":"https://localhost:8080/","height":513},"executionInfo":{"status":"ok","timestamp":1625430080284,"user_tz":-180,"elapsed":729,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"66f6de8e-4fc6-4da5-9260-4475c4f809d8"},"source":["plotMe(results)"],"execution_count":8,"outputs":[{"output_type":"display_data","data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAfgAAAHwCAYAAABKe30SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZyN5f/H8dc1i7EPIkIMouzKRIoWZCnZ16xtoqRFSWnxq6RvaVERorQQky2yJUuFFkOylbKOodBgyDJmuX5/3DOaGGOGOXOf5f18PM5jzrnPfd/nPb5953Ou677u6zLWWkRERMS/BLkdQERERHKeCryIiIgfUoEXERHxQyrwIiIifkgFXkRExA+pwIuIiPghFXgRH2OMKWmM+dYYc9QY87rbeXyFMWaYMeZTt3OI5BYVeBEvYIzZaYxpmsXd+wJ/A4WttYM8GMtjjDGTjDGnjDH/GGMOGmMWG2OuysXPjzDGWGNMSG59pkhuU4EX8T3lgc32Amap8rKC9qq1tiBQBtgDTHQ5j4hfUYEX8TLGmD7GmBXGmJHGmEPGmB3GmJap700CegODU1u/TY0xQcaYIcaYbcaYOGNMlDGmWOr+aS3Ve4wxMcDS1O13G2N+TT3/ImNM+XSfb40x/YwxfxhjDhtjRhtjTLr370s99qgxZrMx5prU7aWNMTOMMQdSMw/Myu9rrT0BRAF10n3GOc9ljKlnjIk2xhwxxuwzxryRuv1mY0zsGf+W5+oZ+Tb15+HUf8cGWckq4ktU4EW8U31gC1AceBWYaIwx1to+wGRSW7/W2q+Bh4C2wE1AaeAQMPqM890EVAWaG2PaAE8D7YESwHfAZ2fs3wq4FqgFdAaaAxhjOgHDgF5AYaA1EGeMCQLmAr/gtMibAI8YY5qf7xc1xhQAugFbU1+f71yjgFHW2sJAJZwvB9l1Y+rPIqn/jt9fwDlEvJoKvIh32mWtfd9amwx8BFwGlDzHvv2AodbaWGttAk4B7nhGd/wwa+2x1NZyP2CEtfZXa20S8DJQJ30rHnjFWnvYWhsDLOPf1vW9OF8uVlvHVmvtLpwvAyWstS9Ya09Za7cD7wNdM/kdHzfGHAaOAg2Bnqnbz3euROAKY0xxa+0/1tofMvkMkYClAi/inf5Ke2KtPZ76tOA59i0PzErtTj8M/Aok898vBLvP2H9Uuv0PAgantXzW5wPH03325cC2c2QonXbO1PM+zbm/lACMtNYWASKAE8CVWTzXPUAV4DdjzGpjTKtMPkMkYHnTgBsRuTC7gbuttSvPfMMYE5H61J6x/3Br7eQL/KxK59i+w1pbObsntNbGGGMeBj4yxnx5vnNZa/8AuqV25bcHphtjLgGOAfnT9jPGBONcgsjwNNnNKeJr1IIX8X1jgeFpXezGmBKp19kz2/8pY0z11P3DU6+tZ8UEnK71usZxRern/gQcNcY8aYzJZ4wJNsbUMMZcm5WTWmsXA3txbgHM9FzGmB7GmBLW2hTgcOopUoDfgbzGmNuNMaHAM0DYOT7yQOoxFbP4e4v4HBV4Ed83CpgDfGWMOQr8gDNIL0PW2lnA/4CpxpgjwEagZVY+yFr7OTAcmIJz7Xw2UCx1rEArnGv1O3Du058AhGfj93gNGIzTs5jZuVoAm4wx/+D87l2ttSestfHAA6n77sFp0f9nVH263+N46u+xMvUywHXZyCniE8wF3EorIiIiXk4teBERET+kAi8iIuKHVOBFRET8kAq8iIiIH1KBFxER8UN+M9FN8eLFbUREhNsxREREcs2aNWv+ttZmOKGT3xT4iIgIoqOj3Y4hIiKSa4wxu871nrroRURE/JAKvIiIiB9SgRcREfFDfnMNPiOJiYnExsZy8uRJt6P4rbx581K2bFlCQ0PdjiIiIun4dYGPjY2lUKFCREREYIxxO47fsdYSFxdHbGwsFSpUcDuOiIik49dd9CdPnuSSSy5RcfcQYwyXXHKJekhERLyQXxd4QMXdw/TvKyLinfy+wIszR0DNmjWpU6cONWvW5Isvvjj93vXXX5+lc/Tp04fp06d7KqKIiOQwFfg0pUqBMWc/SpVyO9l/JCUlXdBxy5YtY926dUyfPp2BAwee3r5q1aoc+wwREfEeKvBp9u3L3vYsOnbsGLfffju1a9emRo0aTJs2jYiICAYPHkzNmjWpV68eW7duBWDu3LnUr1+fq6++mqZNm7Iv9bOHDRtGz549ueGGG+jZsyebNm2iXr161KlTh1q1avHHH38A8Omnn57efv/995OcnHxWniNHjlC0aNHTrwsWLAjA8uXLadSoEa1bt6ZatWpYaxkwYABXXnklTZs2Zf/+/Rf17yAiIrnLr0fRn+Xmm8/e1rkzPPDA+Y/9+2/o2PG/25YvP+9hCxcupHTp0sybNw+A+Ph4nnzyScLDw9mwYQMff/wxjzzyCF9++SUNGzbkhx9+wBjDhAkTePXVV3n99dcB2Lx5MytWrCBfvnw89NBDPPzww3Tv3p1Tp06RnJzMr7/+yrRp01i5ciWhoaE88MADTJ48mV69egFwyy23YK1l+/btREVFZZh17dq1bNy4kQoVKjBz5ky2bNnC5s2b2bdvH9WqVePuu+8+/7+TiIh4hcAq8C6oWbMmgwYN4sknn6RVq1Y0atQIgG7dup3++eijjwLObX1dunThzz//5NSpU/+59ax169bky5cPgAYNGjB8+HBiY2Np3749lStXZsmSJaxZs4Zrr70WgBMnTnDppZeePn7ZsmUUL16cbdu20aRJE26++ebTrfc09erVO/2Z3377Ld26dSM4OJjSpUvTuHFjD/0LiYiIJwRWgc9Ci/ucihe/oOOrVKnC2rVrmT9/Ps888wxNmjQB/jv6PO35Qw89xGOPPUbr1q1Zvnw5w4YNO71PgQIFTj+/8847qV+/PvPmzeO2225j3LhxWGvp3bs3I0aMyDRPpUqVKFmyJJs3b6ZevXr/eS/9Z4iIiG/TNXgP27t3L/nz56dHjx488cQTrF27FoBp06ad/tmgQQPA6b4vU6YMAB999NE5z7l9+3YqVqzIwIEDadOmDevXr6dJkyZMnz799LXygwcPsmvX2YsM7d+/nx07dlC+fPlMc994441MmzaN5ORk/vzzT5YtW5b9X15ERFwTWC34zJQsmfGAupIlL+q0GzZs4IknniAoKIjQ0FDee+89OnbsyKFDh6hVqxZhYWF89tlngDOYrlOnThQtWpTGjRuzY8eODM8ZFRXFJ598QmhoKKVKleLpp5+mWLFivPTSSzRr1oyUlBRCQ0MZPXr06UJ+yy23EBwcTGJiIq+88golz/N7tWvXjqVLl1KtWjXKlSt3+kuIiIj4BmOtdTtDjoiMjLRnrgf/66+/UrVqVZcSnVva2vXFixd3O0qO8NZ/ZxERbzF5w2SGLhlKTHwM5cLLMbzJcLrX7H7R5zXGrLHWRmb0nlrwIiIiHjR5w2T6zu3L8cTjAOyK30XfuX0BcqTIn4uuwbtg586dftN6FxGRzA1dMvR0cU9zPPE4Q5cM9ejnqsCLiIh4UEx8TLa25xQVeBEREQ8qF14uW9tzigq8iIiIB1hreXDegzSr1Iz8ofn/817+0PwMbzLco5+vAi8iIuIB7699nzHRYyhZoCTj7xhP+fDyGAzlw8sz/o7xHh1gByrwueLtt9+matWqdO9+7v8x06aN3blzJzVq1ACcBWDCw8NPLyqTftGXOXPm8Morr2Tp88+cklZERDzrx9gfeWjBQzSv1JxhNw+je83u7HxkJynPp7DzkZ0eL+6gAv8fkzdMJuKtCIL+L4iItyKYvGFyjpx3zJgxLF68mMmTs3++Ro0asW7dOtavX8+1117L6NGjAWdu+iFDhpy1v5Z6FRFx1/5j++kQ1YEyhcowpcMUgoOCXcmhAp8q7T7FXfG7sNjT9ylebJHv168f27dvp2XLloSHhzNy5MjT79WoUYOdO3dm6TzWWo4ePXp6qddJkyYxYMAAAPr06UO/fv2oX78+gwcPZseOHTRo0ICaNWvyzDPPXFR+ERHJnrlb5nLwxEFmdJ5BsXzFXMsRUBPd3Dzp5rO2da7emQeufYCnvn4qw/sUH17wMN1rdufv43/TMeq/y8Uu77P8vJ85duxYFi5cyLJly3j33Xeznfm7776jTp06xMXFUaBAAV5++eUM94uNjWXVqlUEBwfTunVr+vfvT69evU63+EVEJHfcc809NL+iOWULl3U1h1rwqWKPxGa4Pe5EXC4n+a+0Lvrdu3dz1113MXjw4Az369SpE8HBTjfQypUrTy9H27Nnz1zLKiISyGb/Npvvd38P4HpxhwBrwWfW4i4XXo5d8WevvlY+3FmspXj+4llqsWcmJCSElJSU069PnjyZreNbt25Nhw4dMnzvzKVe0y9HKyIinrVx/0Z6zOzBtWWuZWmvpV7xN1gt+FTDmwz3+H2KERERp5eLXbt27TlXizuXFStWUKlSpfPud8MNNzB16lSACxrYJyIiWRd/Mp7209pTKKwQk9tP9oriDirwp3Wv2d3j9yl26NCBgwcPUr16dd59912qVKly3mPSrsHXrl2bTz75hNdff/28x4waNYrRo0dTs2ZN9uzZkxPRRUQkAyk2hV6ze7Hj8A6iOkZRulBptyOdpuVi5aLp31lEAtWUDVPoPrM7b7d4m4fqP5Trn6/lYkVERDygS/Uu5AnOQ4eqGY+PcpMKvIiISDbtPLyTkKAQyhYuS8dqHc9/gAtU4EVERLLheOJx2k1rx4nEE2x6YJNrM9Wdj98XeGut14xo9Ef+MoZDRCQrrLX0+7Ifv/z1C1/e+aXXFnfw81H0efPmJS4uTkXIQ6y1xMXFkTdvXrejiIjkijGrx/DJ+k94/qbnua3ybW7HyZRft+DLli1LbGwsBw4ccDuK38qbNy9ly7o/Y5OIiKf9GPsjjyx6hNsr386zNz3rdpzz8usCHxoaSoUKFdyOISIifqBqiar0q9uPF255gSDj/R3gfl3gRURELlZiciJJKUkUDivMO7e943acLPP+ryAiIiIuemLxEzT8sOFZK456OxV4ERGRc5iyYQqjfhxFo3KNzlqvxNupwIuIiGRg/b713DvnXhqVa8Rrt77mdpxsU4EXERE5w6ETh2g3rR1F8xUlqlMUocGhbkfKNhV4ERGRM8QnxFMkbxGmd5pOqYKl3I5zQTSKXkRE5AwRRSJYfd9qn7gd7lx8N7mIiEgOm/f7PLrP7M6xU8d8uriDWvAiIiIAbD24lR6zelChSAWfL+6gFryIiAjHTh2j/bT2BJkgZnSeQb7QfG5HumhqwYuISECz1tL3y75s3L+RhT0WUqGof0xxrha8iIgEtJj4GBZuXchLjV+iWaVmbsfJMWrBi4hIQCtfpDwb+m/w2dvhzkUteBERCUh7j+7lze/fxFpL6UKl/WJgXXr+9duIiIhkwankU3SM6sizy55lV/wut+N4hLroRUQk4Dy68FG+j/2eqI5RRBSJcDuOR6gFLyIiAeWjdR8xJnoMjzd4nE7VO7kdx2M8WuCNMS2MMVuMMVuNMUMyeL+fMWaDMWadMWaFMaZauveeSj1uizGmuSdziohIYDh44iADFgzglohbGNF0hNtxPMpjXfTGmGBgNHArEAusNsbMsdZuTrfbFGvt2NT9WwNvAC1SC31XoDpQGvjaGFPFWpvsqbwiIuL/iuUrxrw753FV8asICfLvq9SebMHXA7Zaa7dba08BU4E26Xew1h5J97IAYFOftwGmWmsTrLU7gK2p5xMREcm25JRkVsasBODG8jdyaYFLXU7keZ4s8GWA3elex6Zu+w9jzIPGmG3Aq8DAbB7b1xgTbYyJPnDgQI4FFxER//L88udp+GFD1uxd43aUXOP6IDtr7WhrbSXgSeCZbB473lobaa2NLFGihGcCioiIT/vity8Y/t1w7rn6HuqWrut2nFzjyQK/B7g83euyqdvOZSrQ9gKPFREROcuWv7fQc1ZPIktH8u5t77odJ1d5ssCvBiobYyoYY/LgDJqbk34HY0zldC9vB/5IfT4H6GqMCTPGVAAqAz95MKuIiPiZE4knaB/VnrCQMGZ0nkHekLxuR8pVHhtCaK1NMsYMABYBwcAH1tpNxpgXgGhr7RxggDGmKZAIHAJ6px67yRgTBWwGkoAHNYJeRESyI29IXh689kGuvORKyoWXcztOrjPW2vPv5QMiIyNtdHS02zFERMQLxJ+MJzxvuNsxPM4Ys8ZaG5nRe64PshMREclJy3YsI2JUxOnb4gKVCryIiPiN3fG76TK9C5cVvIxaJWu5HcdVKvAiIuIXEpIS6Ph5R04mnWRml5kUCivkdiRX+fc8fSIiEjAGLhjIT3t+YmbnmVxV/Cq347hOLXgREfF5ySnJGGN4quFTtKvazu04XkEteBER8XnBQcGMbTUWf7kzLCeoBS8iIj7rwLEDNP6oMev3rQfAGONyIu+hAi8iIj4pKSWJbjO68X3s9ySlJLkdx+uoi15ERHzS0CVDWbJjCR+2+ZBrLrvG7TheRy14ERHxOTM2z+DVVa/Sr24/+tTp43Ycr6QCLyIiPsVaywfrPqB+mfq81eItt+N4LXXRi4iITzHGMLvLbOIT4gkLCXM7jtdSC15ERHyCtZbh3w7n7+N/ExocSvH8xd2O5NVU4EVExCf8b+X/eGbZM0zfPN3tKD5BBV5ERLze4m2LGbp0KF2qd+H+uve7HccnqMCLiIhX23l4J91mdKNaiWpMbD1Rk9lkkQq8iIh4tUcWPkJiSiIzO8+kQJ4CbsfxGRpFLyIiXu39O95nS9wWKl9S2e0oPkUteBER8UorY1aSmJxIiQIlaFiuodtxfI4KvIiIeJ0fYn/glo9u4fnlz7sdxWepwIuIiFfZ988+OkZ1pGzhsjx+/eNux/FZugYvIiJeIykliS7TuxB3Io7v7/meYvmKuR3JZ6nAi4iI1xi6ZCjf7PqGj9t+TJ1SddyO49NU4EVExGvcWfNOCocVpmftnm5HyTmlSsG+fWdvL1kS/vrLYx+rAi8iIq47fPIwRfIWoXap2tQuVdvtODkro+Ke2fYcokF2IiLiqsMnD1Pv/XoMXTLU7Sh+RQVeRERck2JT6DWrFzsO76Bl5ZZux/ErKvAiIuKa4d8OZ+7vc3mj2Rv+N5lNQgI8+aRrH69r8CIi4ooFfyzg+eXP06NWDwbUG+B2nJy1YQP06AHr17sWQS14ERFxRUJyAjeUu4Fxrcb51wpxH38MkZHOCPm5c53R8hk51/Ycoha8iIi4ou1VbWlzZRv/Ku4ANWpAmzYwejSUKOHRW+Eyoxa8iIjkGmst9865l/dWvwfgH8XdWpg0CQYNcl5fcw1ERTnF3UUq8CIikmtGrx7NxJ8n8vfxv92OkjMOHID27eGuuyA62hlY5yVU4EVEJFesjFnJo4se5Y4qdzD0Rj+4533uXKc7fv58eO01WLoUwsLcTnWarsGLiIjH/Xn0Tzp93omIIhF83O5jgoyPty/j4qB7d6hYEb7+GmrWdDvRWVTgRUTE4xZtW8TRU0f5qudXFMlbxO04F27jRqheHS65BJYsgVq1vKrVnp6Pf4USERFf0KdOH7Y+tJUal9ZwO8qFOXUKnnoKateGTz5xtl17rdcWd1ALXkREPGj65ukUz1+cmyNupmRBz9737TEbN0LPnrBuHdxzD7Rr53aiLFELXkREPOKXv36h16xevPTtS1hr3Y5zYSZMcCat2bMHvvjCeV2okNupskQFXkREctyhE4doH9WeYvmKMbn9ZN+9371MGWjZ0mnFt27tdppsURe9iIjkqBSbQveZ3dkdv5tv7/rWt7rmrXWusR844Exc07Kl8/BBasGLiEiOmrpxKgu2LmBUi1FcV/Y6t+Nk3d9/Q8eO0Ls3zJsHycluJ7ooasGLiEiO6lqjK4XyFKJVlVZuR8m6efOcAXQHD8L//ue03oOD3U51UVTgRUQkR2w7uI0gE0SFohW448o73I6TdTEx0LYtVK0KixY5t8L5ARV4ERG5aMdOHaPttLYkJCXw64O/EhzkA63fHTugQgUoVw4WLIBGjbz6vvbs0jV4ERG5KNZa7p17L5sPbGb0baO9v7ifOgXPPAOVK8NXXznbmjb1q+IOasGLiMhFGvXjKKZunMrLjV/m1kq3uh0nc5s3Q48e8PPPzgpw1/nQIMBsUgteREQu2Krdq3j8q8dpd1U7hjQc4naczI0d66zVvns3zJoFH3wAhQu7ncpjVOBFROSC1SpZi0eve5RJbSd5/2Q2ISHQrJkzaU3btm6n8Tjjs9MHniEyMtJGR0e7HUNEJCAkJCWQlJJEgTwF3I5ybtbC5MnO8x49nNcA3v5FJBuMMWustZEZvacWvIiIZNsjCx+hwcQGHE887naUjMXFQZcuziIxkyc7xd0Yvyru56MCLyIi2TJp3STGrhlLyytakj80v9txzrZwIdSsCbNnw4gR8OWXAVXY03i0wBtjWhhjthhjthpjzhp9YYx5zBiz2Riz3hizxBhTPt17ycaYdamPOZ7MKSIiWbP2z7X0+7IfjSs0ZniT4W7HOdumTc7c8cWKwU8/wZAhPj8j3YXy2G1yxphgYDRwKxALrDbGzLHWbk63289ApLX2uDGmP/Aq0CX1vRPW2jqeyiciItkTdzyO9tPac2mBS5naYSohQV50p/W+fVCyJFSvDp9/Dq1aQd68bqdylSdb8PWArdba7dbaU8BUoE36Hay1y6y1aRdwfgDKejCPiIhchOOJxyldqDQzOs+gRIESbsdxJCbCc89BRASsWeNs69gx4Is7eHaimzLA7nSvY4H6mex/D7Ag3eu8xphoIAl4xVo7O+cjiohIVlhruTz8clbevdJ7bof77TdndPyaNdCrF1xxhduJvIpXDLIzxvQAIoHX0m0unzr0/07gLWNMpQyO62uMiTbGRB84cCCX0oqIBJbZv82mQ1QHjiYc9Z7iPmYMXH017NwJ06fDRx9BeLjbqbyKJwv8HuDydK/Lpm77D2NMU2Ao0Npam5C23Vq7J/XndmA5cPWZx1prx1trI621kSVKeEl3kYiIH9ny9xZ6zepF7JFYQoND3Y7zrwMHoHFjZ9KaDh3cTuOVPNlFvxqobIypgFPYu+K0xk8zxlwNjANaWGv3p9teFDhurU0wxhQHbsAZgCciIrnkaMJR2k1rR1hIGDM6zyBviMvXtT/7DIoXh1tvdRaLCQoKyNvfsspjLXhrbRIwAFgE/ApEWWs3GWNeMMa0Tt3tNaAg8PkZt8NVBaKNMb8Ay3CuwW9GRERyhbWWu+fczZa4LUzrOI3Lwy8//0GecvAgdO0Kd97pzCcPzq1vKu6Z8ug9Dtba+cD8M7Y9l+5503Mctwqo6clsIiJybruP7ObbXd/ySpNXaFyhsXtBFi2Cu++G/fth+HAYPNi9LD7Gi25iFBERb1EuvBwb+2+keP7i7oVYuRJatICqVWHuXGclOMkyrxhFLyIi3mF3/G5GfDeCFJtCiQIl3Bk1Hx/v/Lz+ehg3zrkNTsU921TgRUQEgJNJJ+kQ1YERK0YQEx+T+wESE2HYMKhY0bn9zRjo2xfy5cv9LH5AXfQiIgLAQ/MfYvXe1czsPJOIIhG5++Fbtjgrv61e7UxeU6RI7n6+H1ILXkREeH/N+0z4eQJPN3yadlXb5e6Hp01as20bREXBJ5+owOcAteBFRALcwRMHeeyrx2hWqRkv3PJC7gf4+We46SaYOBFKl879z/dTKvAiIgGuWL5iLO65mMrFKhMclEtLq06bBpUrO4Pn3n0X8uTRfe05TF30IiIBKikliaU7lgJwXdnruCT/JZ7/0EOHoHt3Z+KaUaOcbWFhKu4eoAIvIhKgnl7yNE0+bsKavWty5wO//hpq1nSus7/wgtMlLx6jLnoRkQD0+abPeW3Va/SP7E/d0nU9/4ELFsBtt8FVV8Hs2RAZ6fnPDHBqwYuIBJjNBzZz1xd3cV3Z63irxVue/bATJ5yfTZvCq6/C2rUq7rlEBV5EJICcTDpJu2ntKJCnANM7TSdPcB7PfFBSErz4ojPN7MGDEBoKTzyhSWtykbroRUQCSN6QvAy5YQgVi1akTOEynvmQP/5wJq358Ufo1s1Z1lVynQq8iEiAiDsexyX5L+Guq+/yzAdY68wdP2iQMzJ+6lTo0sUznyXnpa9VIiIB4KttXxExKoJvd33r2Q+aMwcaNoQNG1TcXaYWvIiIn9t5eCfdZnQjokgEdS/zwIj56dPh2muhfHlnApuCBXVfuxdQC15ExI+dSDxB+2ntSU5JZlaXWRTIUyDnTn74sHOtvVMnGDnS2VaokIq7l1ALXkTET1lr6T+vPz//9TNzu83limJX5NzJly6FPn1g715nidenn865c0uOUIEXEfFTKTaFInmL8NyNz9GqSqucO/G0ac5Us1WqwKpVUK9ezp1bcoyx1rqdIUdERkba6Ohot2OIiHgFay0mtas8/fOLkpQEISFw5Ai89ho89RTkz3/x55ULZoxZY63NcOYgXYMXEfEzf/3zFzd8cANr/1wLcPHFPSkJhg93WuonT0Lhws4kNiruXk0FXkTEjyQmJ9JlehfW/bWOYJMDS79u3Qo33gjPPON0ySckXPw5JVeowIuI+JEnv36Sb3d9y/g7xlO7VO0LP1HapDV16sCvv8KUKc7ENeHhORdWPEqD7ERE/MTUjVN584c3GVhvID1q9bi4kyUlwfjx0KABfPghlC2bMyEl16gFLxLoSpVy7ls+81GqlNvJJBustUzdOJWG5RoystnICz/RF1/AoUPO4jCLFjkPFXefpAIvEuj27cvedvFKxhimd57OnK5zCA0Ozf4J4uOd+9rbtoU33nC2FS+uhWJ8mLroReTc7r4bKlSAiAjn5xVXqGXvZVJsCs8ve54H6z1IqYKlKJqvaPZPsnw59O4Ne/bAc885A+rE56nAi8i5LVwIf/757+s77nAWEwG4805nzvG04h8RAZUrO60+8ajJGyYzdMlQYuJjKBxWmPiEeMqFl+O+uvdl/2Qffgj33ON8eVu5EurXz/nA4goVeBE5t717nfued+2CnTudgg6QkuK83rYN9u//d/8HHoDRoyExEdq0cRYfiYj492n05P0AACAASURBVEtAlSpQpEju/x5+ZPKGyfSd25fjiccBiE+IJ9gEkz80m/ekW+uMtWjeHB59FF54AQrk4Dz14jrNZCcS6DKbBCUrfx+OH3eK/c6dcNllcPXVcOAA3HYb7NgBcXH/7jtiBAwZ4nxxuO++/7b+IyLgqqv+/RIhGYp4K4Jd8bvO2l4+vDw7H9l5/hMkJzuz0H3zDcybp2vsPi6zmezUghcJZAkJkCcPnDp19nslS2btHPnzQ7VqziNNiRKwerXz/OhRpwdgxw648kpn2+HDTtf/9987I7bTfPopdO8O69Y514LTt/7TvgDky3cBv6j/iImPydb2/9i+HXr1crriO3WCEyfUavdjKvAigSwszOmCT0mB4ByY9SwjhQpBjRrOI021arDWmUaV+Hin9b9jh7OmeNq2XbucwV9Hj/573DffOLOqffUVjBnz39Z/hQrOF4A8eTzze3iJcuHlMmzBlwsvd+6DrIWJE52u+OBg54vUnXdqWVc/pwIvEqjGjXOuv0ZEeK64Z0V4ONSu7TzS3HQT/PKLU5gOHfr3EkCtWs77R444U6h+/TUcO/bvcdu3O4X+009h1qyzLwFUreru75oDbq98O5PWTeJ40vHT2/KH5md4k+HnPujYMXjpJWcu+UmT4PLLPR9UXKcCLxKIVq2C/v3hkUf+vefZGxkDxYo5j2uu+Xd7x47Ow1rnGv+OHc4XgLTCdeSIM73qggVON3TauU6edAr8m286lwfSCn/aF4GqVXP398um91a/x5joMfSq1Ytvdn1DTHwM5cLLMbzJcLrX7H72AYsWwc03O+MavvsOypTRNfcAokF2IoEmIcEZCHfsGGza5N+D2qx1Rvnv3Olc82/b1tk+bBh89pmzPW38QalS/94S+NRTzpeG9K3/K66ASpVy/VdIs3jbYlpObknLyi2Z3WU2wUGZ9EQcOeJ8efvwQ3j9dXjssdwLKrlKg+xE5F8vv+y0bufP9+/iDk6rvWTJswcMDhvmPFJS4K+/nEJ/5Mi/78fHQ3Q0zJzp3PIHzviAn35ynt97r9MzkP4SQJUqUC6T6+AX4be/f6PT552oVqIaU9pPyby4f/utM2lNTAwMHQoDBngkk3g/FXiRQLJxo3OrWvfu0LKl22ncFxQEpUs7j/TGjHF+Jic7rfodO5wvA2kOHYKff4Zp05x9ANq3hxkznOetWztjC868/n/ZZdmOaK2lx8wehIWEMbfbXAqFFTr3zqNHw0MPQcWKsGKFs1CMBCwVeJFAcvnlTgF46im3k/iG4GBnoZUzF1tJK+RJSc70rjt3OrcLpm07csQZJDhlyr9fDB5+GN56y7lEkja4MX0PQPXqGc4CaIzhk3afcCThCOWLlHcuJWS0TkDJkrBkiTO24n//8//eGTkvXYMXCRRpM5dJ7klMhN27nS8AJUs6RXz/fujQwdm2Z8+/kwmNHAmDBjld6336YCtE8FX5JJpFNMVUrOjcZlikyMVPTCR+JbNr8BpOKRIIdu6E6693uugl94SGOt3ljRs7xR3g0kudEe27dzvX8f/4w7mvv1075/1//oGTJ3ljz3Ra2E+YPaI3NGrk7COSDeqiF/F31sL99zvFvXBht9NIemFhzuj8K674d1u1asz98CmemNqGjle2o82s4bArBurUcS+n+CQVeBF/9+mnTuvvnXc8Nspbcs76feu5c+adXHPZNXzU4VOCQvPDVd59f754J3XRi/iz/fud+6Gvv95Z6U28WkJSAm2ntqVwWGG+6PpF9leIE0lHLXgRf/bmm8413QkTNIOZDwgLCePtlm9zWcHLKFO4TMY7lSx57lH0IuloFL2IP0tMdCZnueEGt5NIJqy1/LLvF+qU0nV2yR6NohcJNEePOpOxhIaquPuA4d8Np+74uqzes9rtKOJHVOBF/NGQIc590+mXWhWv9Pmmz3l22bPcWfNOIktn2BATuSAq8CL+ZsUKZ6rVTp2ctdjFa0Xvjab37N5cf/n1vH/H+xhNRCQ5SAVexJ+cPAn33Qflyzvrf4vXijseR+vPWnNpgUuZ1WUWeUPyuh1J/IxG0Yv4k+HD4bffYOFCzUXu5YrlK8ZjDR6jeaXmXFrgUrfjiB9SgRfxF9Y6s9X17OksZiJeKcWmsOfIHi4Pv5zHr3/c7Tjix9RFL+IvjHHWLx8/3u0kkolnlz5LrbG1iImPcTuK+DkVeBF/MHu2s2a5MZBX13K91Se/fMLLK16mY9WOXF74crfjiJ/zaIE3xrQwxmwxxmw1xgzJ4P3HjDGbjTHrjTFLjDHl073X2xjzR+qjtydzivi0HTuge3cYPNjtJJKJlTEruXfuvdwccTOjbx+tEfPicR4r8MaYYGA00BKoBnQzxlQ7Y7efgUhrbS1gOvBq6rHFgOeB+kA94HljTFFPZRXxWWkrxQUHwxtvuJ1GziEmPoZ209pRLrwcMzrPIE9wHrcjSQDwZAu+HrDVWrvdWnsKmAq0Sb+DtXaZtfZ46ssfgLKpz5sDi621B621h4DFQAsPZhXxTR9/DIsXwyuvwOXq8vVWlxa4lPZV2/Nlty8plq+Y23EkQHhyFH0ZYHe617E4LfJzuQdYkMmx51h5QSRA7dsHjz7qTEXbr5/baSQDySnJHEs8RuGwwoxtNdbtOBJgvGKQnTGmBxAJvJbN4/oaY6KNMdEHDhzwTDgRb5Uvn3PtXSvFea3Hv3qc+hPqcyThiNtRJAB58q/CHiB9n2HZ1G3/YYxpCgwFWltrE7JzrLV2vLU20lobWaJEiRwLLuITCheGd96Bq65yO4lkYPya8bz141s0r9ScwmGF3Y4jAciTBX41UNkYU8EYkwfoCsxJv4Mx5mpgHE5x35/urUVAM2NM0dTBdc1St4lIfLwzkc2aNW4nkXNYumMpD85/kBZXtGBks5Fux5EA5bECb61NAgbgFOZfgShr7SZjzAvGmNapu70GFAQ+N8asM8bMST32IPAizpeE1cALqdtEZMgQ+PprSE52O4lk4Pe43+kY1ZEql1RhaoephARpwlBxh0f/y7PWzgfmn7HtuXTPm2Zy7AfAB55LJ+KDvvsOxo51BtfVq+d2GslAwTwFqV+2PqNvG0143nC340gAM9ZatzPkiMjISBsdHe12DBHPOXkSateGU6ecOecLFHA7kaSTmJxIkAkiOCjY7SgSQIwxa6y1kRm9p6G3Ir5i/Hj4/XcYN07F3ctYaxkwfwCtp7YmKSXJ7TgigAq8iO/o3x/mzoVmzdxOImd4+8e3Gb92PDUvralr7uI1VOBFvF1SEhw6BKGh0KqV22nkDAv+WMBjXz1G26va8nKTl92OI3KaCryItxs1CqpWhT1nTQUhLtu4fyNdpnehdsnafNruU4KM/qSK99B/jSLebNs2ePZZZ8R86dJup5EznEw6SeVLKjOn2xwK5NG4CPEuulgk4q3SVooLCYExY5y13sUrpNgUgkwQkaUjib4vWku/ildSC17EW02aBEuWwP/+B2XLnnd3yR3WWu764i6GfD0Ea62Ku3gtFXgRb7VsGTRq5LTixWu8suIVPv7lY/KH5ldxF6+mLnoRb/XRR3D0qFaK8yIzf53J00ufpluNbjx747NuxxHJlP5yiHib776D7duda+6FtQqZt1j751p6zupJ/TL1mdh6olrv4vXUghfxJocPQ5cuEBEBK1dqYJ0X2X5oO2UKlWF219nkC83ndhyR81KBF/EmTz4J+/bBnDkq7l6mY7WOtL6yNXmC87gdRSRL1EUv4i2++caZb/7RRyEyw7UjJJel2BR6zerFlA1TAFTcxaeowIt4gxMn4N57oWJFeOEFt9NIqmHLh/HJ+k/Ye3Sv21FEsk1d9CLeIDnZWUSmfXvIn9/tNAJM2TCFF799kbvr3M2gBoPcjiOSbSrwIt6gYEEYPdrtFJLqh9gfuPuLu7mx/I281+o9jZgXn6QuehE3JSVBjx7w449uJ5F0lu5YStnCZZnReYauu4vPOm+BN8aUNMZMNMYsSH1dzRhzj+ejiQSAN9+EyZMhJsbtJJLO042eZu39aymev7jbUUQuWFZa8JOARUDaUla/A494KpBIwNi6FZ57Dtq0gY4d3U4T8JJTkuk7ty+r96wGoHCYJhkS35aVAl/cWhsFpABYa5OAZI+mEvF31kLfvpAnj3PtXdd4XTfk6yG8v/Z9ftrzk9tRRHJEVgbZHTPGXAJYAGPMdUC8R1OJ+Lvp053FZMaNgzJl3E4T8CauncjI70fyQOQDPFjvQbfjiOSIrBT4x4A5QCVjzEqgBKD+RJGL0a4dfPwxdO/udpKA983Ob+g3rx/NKjVjVMtRbscRyTHnLfDW2rXGmJuAKwEDbLHWJno8mYi/+ucf57a4nj3dTiLA+2vf54piVzCt4zRCgnTnsPiP8/7XbIwJBm4DIlL3b2aMwVr7hoezififWbOgf39YuhSqVXM7jQCT2k7i7+N/UyRvEbejiOSorAyymwv0AS4BCqV7iEh2HD4MDz4Il10GlSu7nSagJaUk8diix/jz6J+EBIVQqmAptyOJ5Lis9EeVtdbW8ngSEX/3xBPOSnFz50JoqNtpAtrDCx5mTPQY6l5Wl+61NA5C/FNWWvALjDHNPJ5ExJ8tWwYTJsCgQVC3rttpAtron0YzJnoMT1z/hIq7+LWstOB/AGYZY4KARJyBdtZaq1kgRLJq5kyoVAmGDXM7SUD7attXPLzwYVpf2ZoRTUa4HUfEo4y1NvMdjNkBtAE22PPt7KLIyEgbHR3tdgyRjFkLf/8NJUq4nSRgWWtpMLEBJ5JOsOKuFRQK01Ai8X3GmDXW2siM3stKC343sNGbi7uI19q8GcLCnNa7irurjDEs6L6AY4nHVNwlIGSlwG8HlqcuNpOQtlG3yYmcR9pKcUeOwJYtEBzsdqKAdCr5FCNXjeSxBo9RNF9RiuYr6nYkkVyRlQK/I/WRJ/UhIlnx+uvw888wY4aKu0ustfT7sh8frvuQOqXqcFvl29yOJJJrsjKT3f/lRhARv/LHH86AunbtoH17t9MErJGrRvLhug957sbnVNwl4JyzwBtj3rXWDjDGzCV1oZn0rLWtPZpMxFelrRQXFgbvvut2moA1Z8scnvz6STpX78zzNz/vdhyRXJdZC74XMAAYmUtZRPzDqVNQo4azkEzp0m6nCUgJSQk8OP9BIktHMqnNJIJMVqb8EPEvmRX4bQDW2m9yKYuIfwgLg3fecTtFQAsLCWNxz8WEh4WTLzSf23FEXJFZgS9hjHnsXG9qFL3IGayFwYOda+4NGridJiCdSDxB1KYoetXuxVXFr3I7joirMuu3CgYK8t8FZrTYjMi5zJwJI0fCd9+5nSQgWWu5e87d9PmiD2v+XON2HBHXZdaC/9Na+0KuJRHxZYcOwYABcPXV8Ng5O77Eg1789kWmbpzKiCYjiCyd4cReIgElswJvci2FiK974gk4cADmz4eQrEwvITkpalMUzy9/nl61e/HkDU+6HUfEK2TWRd8k11KI+LJVq2DiRHj8cacFL7nq7+N/c8+ce2hYriHjW43HGLVNRCCTFry19mBuBhHxWfXqwZgx0KeP20kCUvH8xZnZeSZ1StUhLCTM7TgiXkM3h4pcjIQEp0u+f3/Ip9uxctOxU8dYtmMZALdWupUSBbSYj0h6KvAiFyo6GipWhJ9+cjtJwEmxKfSY1YPmnzYnJj7G7TgiXkmjgUQuRGIi3Huvc+97lSpupwk4Q5cMZfZvs3mr+VuUCy/ndhwRr6QCL3IhRo6EX36BWbOgSBG30wSUSesm8crKV7i/7v0MrD/Q7TgiXktd9CLZtWUL/N//QYcO0Lat22kCypa/t9B3bl+aVGjCOy3f0Yh5kUyoBS+SXZMnOwPqtFJcrqtySRXeve1dOlXrRGhwqNtxRLyasfaslWB9UmRkpI2OjnY7hgQCayEmBsqXdztJwIg/Gc9f//zFlcWvdDuKiFcxxqyx1mY4daO66EWyau9e2LoVjFFxz0VJKUl0ndGVhh825GjCUbfjiPgMFXiRrLAWHngA6teHY8fcThNQBi0axMKtC3m58csUCtM6VyJZ5dECb4xpYYzZYozZaowZksH7Nxpj1hpjkowxHc94L9kYsy71MceTOUXOa/p0+OILGDIEChRwO03AGBs9lrd/eptH6j/CfXXvczuOiE/x2CA7Y0wwMBq4FYgFVhtj5lhrN6fbLQboAzyewSlOWGvreCqfSJYdPOisFFe3Ljz6qNtpAsb3u79nwPwB3Fb5NkY2G+l2HBGf48lR9PWArdba7QDGmKlAG+B0gbfW7kx9L8WDOUQuzuOPQ1wcLFqkleJy0dWXXc2QhkMYfMNggoOC3Y4j4nM82UVfBtid7nVs6rasymuMiTbG/GCM0c3G4o6UFChY0Omar6MOpdxw8MRBDp04RN6QvLzU+CUKhxV2O5KIT/Lm5kh5a+0eY0xFYKkxZoO1dlv6HYwxfYG+AOXKabpK8YCgIHj7bWeQnXjcqeRTdIjqQNzxONbev5aQIG/+EyXi3TzZgt8DXJ7uddnUbVlird2T+nM7sBw4a6Fta+14a22ktTayRAmtJCU57M03YeVK57lmTPM4ay0D5g9g+c7lDL5hsIq7yEXyZIFfDVQ2xlQwxuQBugJZGg1vjClqjAlLfV4cuIF01+5FPG71aufa+8cfu50kYLz1w1u8v/Z9nm74ND1q9XA7jojP81iBt9YmAQOARcCvQJS1dpMx5gVjTGsAY8y1xphYoBMwzhizKfXwqkC0MeYXYBnwyhmj70U8J22luFKl4NVX3U4TEBZuXcigrwbRoWoHXmz8ottxRPyCR/vArLXzgflnbHsu3fPVOF33Zx63CqjpyWwi5/Tqq7B+PcyeDeHhbqcJCLVL1ubuq+9mVItRBBnNvyWSEzQXvUh6W7dC9erQpg1ERbmdxu8dOnGIQmGFdL1d5AJpLnqRrIqIgFdecUbOi0edTDrJ7VNup8v0Lm5HEfFL+toskiY52ZnIRrPVeZy1lnvn3Mv3sd/zeafP3Y4j4pfUghcBiI2Fq66CZcvcThIQXv7uZSZvmMxLt7xEx2odz3+AiGSbCrxI2kpxe/dqGdhcMGPzDJ5Z9gzda3bn6UZPux1HxG+pi14kKgrmzoXXX4eKFd1O4/ciikTQoWoHJrSegNEEQiIeo1H0Etji4qBqVafl/v33WkzGg04kniBfaD63Y4j4FY2iFzmXyZPh0CGYOFHF3YOOJx6n0YeNeG7Zc+ffWURyhAq8BLaHHoJffoFatdxO4rdSbAq9ZvVi7Z9rqVemnttxRAKGCrwEpn/+cSa1MQaqVXM7jV97btlzzPh1BiObjaRVlVZuxxEJGCrwEpiefRZq14a//nI7iV/7dP2nDP9uOPdefS+PXqf5BURykwq8BJ4ff4RRo6B3b2dBGfGYkKAQWl7RktG3j9aIeZFcplH0ElhOnYK6deHwYdi0CQoXdjuRX0pOSSY4KBhwZq1TcRfxDI2iF0nz6quwcSO8956Ku4ccTThK/Qn1+WzDZwAq7iIuUYGXwHLkCNx5J7TSYC9PSE5JptuMbqz7ax0lCpRwO45IQNONvxJYXn0VUlLcTuG3Bi8ezLw/5jHmtjE0rdjU7TgiAU0teAkM06bBypXO8yD9Z+8JE9ZO4I0f3uCheg/R/9r+bscRCXj6Syf+LyYG7r0XXnzR7SR+LSY+hhZXtOCN5m+4HUVEUBe9+DtroX9/p1t+7Fi30/iltFHyL9zyAkkpSYQE6c+KiDdQC17829SpMH8+DB8OERFup/E7h04c4paPbuHH2B8BVNxFvIgKvPivuDgYOBDq1XPmnJcclZicSOfpnVm1exWnkk+5HUdEzqCv2+K/wsNhyBBo1gyCg91O41estQxcMJCvt3/Nh20+pFH5Rm5HEpEzqMCLf7LWWf510CC3k/ild356h7FrxjL4+sH0qdPH7TgikgF10Yv/+ecfqF/fufYuOc5ay9IdS2lzZRtGNB3hdhwROQe14MX/DB0K0dFOF73kOGMMMzrP4FTyKYKM2ggi3kr/7xT/8v338M478MADcMMNbqfxKweOHaBDVAf2HNlDcFAw+ULzuR1JRDKhAi/+49QpZ0KbMmVghLqOc1JCUgLto9oz/4/57Dm6x+04IpIF6qIX/zFjBmzeDF9+CYUKuZ3Gb1hruf/L+1kRs4KpHaZSr0w9tyOJSBaowIv/6NoVKlSA665zO4lfeW3Va3z0y0cMu2kYXWp0cTuOiGSRuujF9yUnw44dYIyKew5LSErgk/Wf0LVGV5676Tm344hINqgFL75vzBgYPBjWrIFq1dxO41fCQsJYcdcK8gTnwRjjdhwRyQa14MW3xcTAU0/BTTdB1apup/Ebfx79k4ELBnIi8QThecM1Yl7EB6nAi++yFvr1c56PHet00ctFO5F4gjZT2/DBzx+w/dB2t+OIyAVSF734rilTYMECeOstrRR3kSZvmMzQJUOJiY8hX2g+jiceZ3aX2VS/tLrb0UTkAqnAi+/64w+4/noYMMDtJD5t8obJ9J3bl+OJxwE4nnic0KBQ/kn8x+VkInIxjLXW7Qw5IjIy0kZHR7sdQ3JbYiKEhrqdwqdFvBXBrvhdZ20vH16enY/szP1AIpJlxpg11trIjN7TNXjxPcuXw4oVznMV94sWEx+Tre0i4hvURS++5ehR6NXLWUjml18gSN9RL0bc8TjCQsI4mXTyrPfKhZdzIZGI5BT9dRTf8vTTEBsL48eruF+kX/76hcj3I0lMTiRPcJ7/vJc/ND/Dmwx3KZmI5AT9hRTfsWoVjB7tDKpr0MDtND5t2sZpNJjYgMTkRFbds4oP2nxA+fDyGAzlw8sz/o7xdK/Z3e2YInIRNMhOfENCAlx9NRw7Bhs3ajGZixATH0PldypTr0w9Pu/0OaUKlnI7kohcoMwG2ekavPiGkBC47z5ntjoV9wtyMukkeUPyUi68HF/3/Jr6Zeuf1TUvIv5DXfTiG4KD4dFHoUULt5P4pPX71lN9THWiNkUB0Kh8IxV3ET+nAi/eLTkZWreGWbPcTuKzojZF0WBiA04kntDIeJEAogIv3u3dd2HuXDhxwu0kPic5JZkhXw+hy/Qu1ClVhzV913BdWS2nKxIoVODFe+3cCUOHQsuW0K2b22l8zlfbvuJ/K/9Hv7r9WNZ7GZcVusztSCKSizTITrxT2kpxxmiluGw6duoYBfIUoGXllqy4awU3lLvB7Ugi4gK14MU7LVsGixbBiBFQTteNs+rzTZ9TYVQFfv7zZwAVd5EApgIv3qlxY/jqK+jf3+0kPiE5JZmnvn6KztM7c0WxK3Rvu4ioi1680F9/QalScOutbifxCYdOHOLOmXeycOtC+l7Tl7dbvk1YSJjbsUTEZWrBi3eZNw8qVICVK91O4jNGrx7Nku1LGHv7WMbdMU7FXUQATVUr3uTIEahe3Vkpbu1ayKOJWDJzJOEIhcMKk5icyKYDm6hTqo7bkUQkl2k9ePENTz0Fe/bAhAkq7plITklm6JKh1BhTgwPHDhAaHKriLiJn8WiBN8a0MMZsMcZsNcYMyeD9G40xa40xScaYjme819sY80fqo7cnc4oXWLECxoyBgQPhOk3Gci6HTx7mjs/u4OUVL9O8UnMKhxV2O5KIeCmPDbIzxgQDo4FbgVhgtTFmjrV2c7rdYoA+wONnHFsMeB6IBCywJvXYQ57KKy778UeoWBFeesntJF5r0/5NtJ3Wll2HdzH29rHcH3m/25FExIt5sgVfD9hqrd1urT0FTAXapN/BWrvTWrseSDnj2ObAYmvtwdSivhjQKiP+bNAg2LABChZ0O4nXembZMxxNOMqy3stU3EXkvDx5m1wZYHe617FA/Ys4tkwO5RJvsmkTHDwIjRpB/vxup/E6KTaFIwlHKJK3CBPumMDJpJOUKaz/K4jI+fn0ffDGmL5AX4Bymu3M9yQnw913O3PO79ihAn+GwycP02NmDw6dPMQ3fb7hkvyXuB1JRHyIJ7vo9wCXp3tdNnVbjh1rrR1vrY201kaWKFHigoOKS95+G376Cd56S8X9DJsPbKbe+/VYtG0RPWr2INgEux1JRHyMJwv8aqCyMaaCMSYP0BWYk8VjFwHNjDFFjTFFgWap28Rf7NgBzzwDt98OXbu6ncarzP5tNvUn1OdIwhGW9V5G/2v7Y7TYjohkk8cKvLU2CRiAU5h/BaKstZuMMS8YY1oDGGOuNcbEAp2AccaYTanHHgRexPmSsBp4IXWb+ANr4f77ISgI3ntPK8Wlcyr5FIMXD6ZaiWpE942mYbmGbkcSER+lmewk96WkwKhRUKgQ3Huv22m8QvzJePKG5CUsJIydh3dSqmAp8obkdTuWiHi5zGay8+lBduKjgoLg0UfdTuE1fj3wK22nteXm8jcz7o5xRBSJcDuSiPgBTVUruWvAAJg61e0UXmPOljnUn1CfwycP071Wd7fjiIgfUYGX3DN3LoweDVu3up3EdSk2hWHLh9FmahuuLH4l0fdFc2P5G92OJSJ+RAVecseRI/DAA1CjBgwe7HYa18XEx/DG92/Qu3Zvvu3zLZeHX37+g0REskHX4CV3DBkCe/fCjBkBvVLc3qN7uazgZUQUiWBdv3VUKFJBt8CJiEeoBS+et2mTczvcww9DvXpup3HN3C1zuerdqxi3ZhwAFYtWVHEXEY9RC148r3p1+OILaNLE7SSuSLEpvPTtSzy//HnqXlaX2yrf5nYkEQkAKvCS80qVgn37zt5esiT89Vfu53HRkYQj9J7dm9m/zaZX7V6MvX0s+ULzuR1LRAKACrzkvIyKe2bb/dhPe35i3u/zGNViFA/Ve0hd8iKSa1TgRTxg1+FdlC9SnqYVm7Jt4DaNkheRXKdBdiI5KMWm8OI3L1L5ncqsjFkJoOIuIq5QC14khxxNOEqv2b2Y/dtsetTqwTWXXeN2JBEJYCrwIjngvQhLVAAAHAJJREFU97jfaTu1Lb/H/c5bzd9iYP2But4uIq5SgZecV7LkuUfR+6m5W+ay/9h+FvdczC0VbnE7joiICrzkoDffhGuuCZhb4ay1bDu0jSuKXcFjDR6je63ulCpYyu1YIiKABtlJTlm6FAYNgk8+cTtJrjiacJSOn3fk2vev5c+jf2KMUXEXEa+iFrxcvP37oXt3uOoqGDXK7TQe90fcH7Sd1pbf/v6N1259TYVdRLySCrxcnJQU6NULDh+Gr76CAgXcTuRRC/5YQLcZ3QgJCmFxz8U0rtDY7UgiIhlSgZeL8/nnsGgRjB0LNWu6ncbjpmycQoWiFZjVZRYRRSLcjiMick4q8HJxOnWCvHmhdWu3k3jMP6f+Ie54HOWLlGdcK2cluPyh+V1OJSKSORV4uTCHDsHRo1CuHLRp43Yaj9l6cCvtprXDYPj5/p9V2EXEZ2gUvWSftXDPPc7a7seOuZ3m/9u79/Aqqnv/4+9vQojcDAiIIJdwVVE4iBEvFFAQUNQiPYgoVI6iVAVtsVTwSS3YlkcU70qreLha5FJvpXAKIqDyE4skFUEQaggEuQioELloQmT9/pgJbtMkEMjO7Nn5vJ4nD7PXzJ79Xa64v5k1a9aKmkVZi7j4pYvZeWAnT/R6gsSExKBDEhE5YUrwUnZ/+hO88Qb85jdxOajOOceE/zeBPrP60DSlKRl3ZtCzZc+gwxIRKRMleCmbNWvg/vuhTx8YOTLoaKIi//t8Xvv0NQacP4CVt6+keZ3mQYckIlJmugcvJ+7gQbjpJqhXD2bMgIT4+vswe182davVJeW0FN7++ducnny65pMXkdCKr29oib5OneCVV7wkH0cWZy0mbXIaI/4xAoCU01KU3EUk1HQFLyfGOahZM+6monXOMXHlRB5c+iDn1z+fh694OOiQRETKha7g5fg2bYLOnSErK+hIytWh/EPc/NrNjH57NP3b9ueDoR/Qok6LoMMSESkXuoKX0n37LQwYADt3QvX4egY8Ny+XFdtWMKHHBB7o/IC65EUkrijBS+l+/WtYuxb+7/+gUaOgoykXq3espmPDjjSq1YiNwzdSK7lW0CGJiJQ7ddFLyV57Df78Zxg1Cq65JuhoTplzjsdXPs6lUy7luQ+fA1ByF5G4pSt4KZ5zMGmSN2p+/Pigozllh48c5o75dzD7k9n0b9ufOzreEXRIIiJRpQQvxTPzuuX374eqVYOO5pRs2beFfnP7sXb3Wh7p8QijO4/W/XYRiXvqopf/NHs25OZ6q8SddVbQ0ZyyPYf28MXBL1h4y0LG/GSMkruIVApK8PJj//gH3HILPP540JGcEucc7+W8B8AljS9hyy+3cE3r8I8jEBE5UUrw8oOdO+HWW6F9e0hPDzqak3b4yGEGvzGYbtO7HUvy1ZKqBRyViEjF0j148Xz/PQweDIcPw9y5Xvd8CG3dv5V+c/vx8RcfM777eLo07RJ0SCIigVCCF8/jj8Py5TB9Opx7btDRnJRlW5Yx4K8DKDhawIJbFtCndZ+gQxIRCYwSvHgGD/ZGzg8ZEnQkJ+3z3M9pULMBb970Jq3rtg46HBGRQJlzLugYykVaWprLyMgIOozwOXAAatQI7dKv3x75loydGXRp5nXF5xXkkVwlOeCoREQqhpllOufSitsXzm91KR/Owc03Q9++3nbI5OzPofPUzlw962r2HNoDoOQuIuJTgq/MnnoKFi6E3r297vkQWb5lOWkvpbF532bm9Z/HmTXODDokEZGYogRfWa1eDWPGQL9+MHx40NGUyTP/fIaeL/ekfvX6rL5zNde2uTbokEREYo4G2VVGublw003e6nBTpoTu6j0nN4frz7meGTfM4PTk04MOR0QkJinBV0aff+4l9dmzoU6doKM5Idtyt/HV4a+4sOGFPNbzMRIsgQRTB5SISEmU4CujCy6AjRshKSnoSE7Iu1vf5ca/3kj9GvVZd/c6qiTo11ZE5Hh0CVSZrFsHo0dDfn4okrtzjmdXPUuPmT2oW70urw94XVftIiInSN+WlcWhQzBgAMyc6S0BG+PyCvK47W+38ctFv+TaNtey6o5VnFPvnKDDEhEJDfV1Vhb33gubNsGSJXBm7D9SViWhCrsP7WZct3E81O0hXbmLiJSREnxlMGsWTJsGv/0t9OgRdDSlWpGzgpZntKRRrUYsuHkBiQmJQYckIhJKuiyKd4cPw8iR0KULjB0bdDQlcs7x/IfP031md0a/PRpAyV1E5BToCj7eVa8OS5dC7dpQJTab+7uC77h74d1MXzOd69pcx/PXPB90SCIioacr+HhWuPhOu3bQpEmwsZRg14FddJ3WlelrpvO7rr/jbwP/RsppKUGHJSISelFN8GZ2tZltMrMsMxtTzP5kM5vr719lZql+eaqZfWtma/yfF6IZZ1x68024+GJvMpsYVi2pGkfdUd646Q0evvJhDaYTESknUeuzNbNEYBLQE9gOrDaz+c65DRGHDQX2OedamdlA4FHgJn/fZudch2jFF9e2bYPbb4eOHeFnPws6mv/gnGPe+nn0PbcvtU+rzYd3fqjELiJSzqL5rdoJyHLOZTvn8oE5QN8ix/QFZvjbrwI9zEI2MXqsOXLEWwK2oADmzoXk2Fo+9buC77hj/h0MfG0gL2W+BKDkLiISBdH8Zj0b+Dzi9Xa/rNhjnHMFQC5Q19/X3Mw+MrN3zaxLcR9gZsPMLMPMMvbu3Vu+0YfV2LGwciVMngytWgUdzY/s+GYH3aZ3Y+qaqTzU9SGGdwrXKnYiImESm8OqYRfQ1Dn3lZldBLxpZuc7576JPMg5NxmYDJCWluYCiDP2XHgh3H8/DBwYdCQ/smr7KvrO6cuhI4d4fcDr9DuvX9AhiYjEtWhewe8AIoduN/bLij3GzKoAKcBXzrk859xXAM65TGAz0CaKsYaf8/++ufFGeOKJYGMBZq2bRerTqSQ8nEDq06ms2LaCJilNWHXHKiV3EZEKEM0EvxpobWbNzawqMBCYX+SY+cAQf7s/sMw558ysvj9IDzNrAbQGsqMYa7gdPQrXXw8vvhh0JICX3If9fRg5uTk4HDm5OYx9Zyy/uuRXtK3fNujwREQqhagleP+e+ghgMfApMM85t97Mfm9mP/UPmwLUNbMs4H6g8FG6rsBaM1uDN/juLufc19GKNfQmTICFCyExNmZ+S1+azuEjh39UdvjIYdKXpQcUkYhI5WPOxcet67S0NJdROLFLZfL++9Ctm9c1/8orEPBDCNn7smn5bMti9xnG0bFHKzgiEZH4ZWaZzrm04vbp+aQw+/pr75G41FSvez7g5H7UHaX3X3pjFB9H05SmFRyRiEjlpQQfZosWwZ49MGcOnH56ICEUHC1g2kfTyCvII8ESmHHDDJ695lmqJ1X/0XHVk6ozvsf4QGIUEamMYvUxOTkRt9zidc+fXXR6gYqxKGsRv37r12zYu4GkxCQGtx/M5U0u5/Iml1OnWh3Sl6azLXcbTVOaMr7HeAa1GxRInCIilZHuwYfRRx/BN994yT0A6/esZ9SSUSzKWkSrM1oxsedE+p7TF01CKCJSsUq7B68r+LA5cAAGDPCmpP33v6Fq1QoPYdiCYWzYu4Enez3J8E7DqZpY8TGIiEjplODDxDm46y7IzoZ33qmw5J5XkMek1ZP4efufU79Gfab1ncYZ1c6gXvV6FfL5IiJSdkrwYTJtmvco3B/+AF2KnZ6/XDnneO3T13hgyQNs2b+F5MRkhncaTpu6mlRQRCTWKcGHxZYtMGIEdO8ODz4Y9Y/L3JnJyMUjWbFtBReceQGLBy+mV8teUf9cEREpH0rwYdGsmTdj3Y03VsiMdY+tfIyNX27khWtfYGjHoVRJ0K+KiEiYaBR9GOzbB3XqRPUjDuUf4vGVj9O/bX/OP/N8dh/cTbWkapyeHMzz9SIicnyayS7M5s6Fli1h3bqonP6oO8rMj2dyzvPnMO7dcSz8bCEADWo2UHIXEQkx9bvGss2b4c474YIL4Nxzy/30K3JWMHLxSDJ3ZXJxo4uZ238unZt2LvfPERGRiqcEH6vy82HgQO9+++zZkJRU7h+x8LOF7D60m7/0+ws3t7uZBFOHjohIvNA3eqwaMwYyMmDqVG+AXTnY/91+fvPWb3hr81sAPNT1ITaN2MSg9oOU3EVE4oyu4GPR0aOwd6/3WFy/fqd8uoKjBUzOnMzYd8by1eGvqJVci14te1Gjao1yCFZERGKREnwsSkiAmTO9RH+KlmYv5b5F97Fh7wa6NevGk72fpGPDjuUQpIiIxDL1y8aSggL4xS/g00+9td3L4Xn3rK+zyCvI442b3mD5kOVK7iIilYQSfCz5/e9h8mTIzDzpU+w9tJd7Ft7DS5kvATC041DW37OeG869Qau9iYhUIkrwQTrrLO9KvfDnD3/wykeNKvOp8grymPj+RFo914rJmZPZ/s12AKokVCG5SnJ5Ri0iIiGge/BB2r27bOUlWLJ5CXctvIvsfdlc2/paJvacyHn1zyuHAEVEJKyU4EPMOYeZcdQdpXpSdd4a/BY9W/YMOiwREYkBSvBBOYUR8tu/2U76snQa1WzEI1c9Qu9WvbmqxVUkJkR/ERoREQkH3YMPwpo1cPnlZX7bofxDjHtnHG2ea8OcT+ZQNbHqsX1K7iIiEklX8BXpwAEYOxaeeQbq1i3TW9/Ofpshbw5h54GdDDh/ABN6TKB5neZRClRERMJOCb6ibN4M3brBjh3es+6PPALnnVf8gLoGDY5tHvn+CEmJSTSq1YjU2qnM6z9PC8KIiMhxKcFHW34+VK0KqanQsycMGwaXXebt++KLEt+2+evNPPD2AyRaIvNunEfb+m15//b3KyZmEREJPd2Dj5b8fJgwAVq1gi+/9Galmzbth+Tum7VuFqlPp5LwcAKpT6fyUuZLjHprFOdNOo9FWYto36A9zrmAKiEiImGlK/hoWLEC7roLNmzwFospKCj2sFnrZjHs78M4fOQwADm5OQxbMAyA2zrcxh+7/5FGtRpVWNgiIhI/lODL05Ej3v31adO8JV7nz4frry/x8PSl6ceSe6Szap7F1L5ToxmpiIjEOXXRl6ekJPj2Wxg9GtavLzW5H8g7QE5uTrH7dh8s20x2IiIiRSnBn6r16+Gqq2DjRu/1K694995rFL/Weva+bEYuGknjpxqXeMqmKU2jEamIiFQiSvAn69AhGDMGOnTwJq7ZutUrL2bFNuccR74/AnjPsz+/+nmua3Md47qNo3pS9R8dWz2pOuN7jI929CIiEud0D/5kLFwIw4dDTg7cfjs8+ijUq/cfhx3MP8jMj2fy3IfPMfzi4YzoNILB7QdzXZvrjg2ea1W3FelL09mWu42mKU0Z32M8g9oNqugaiYhInFGCPxnLl0PNmvDee9Cly3/s3vz1ZiatnsTUj6aSm5fLRQ0vollKM8C7Qo+8ah/UbpASuoiIlDuLl2es09LSXEZGRnROfuQIPPssdOwIV17pDaRLTPQmsClG12ld+WD7B/Rv25/7Ot3HpY0vxYrpuhcRETkVZpbpnEsrbp+u4Is666yS12O/914vwVerdqzoUP4hXl77MpMzJ7No8CLOrHEmk/pM4oxqZ3D26WdXUNAiIiI/pgRfVEnJHbxFYnxb9m1h0upJTPloCvu/20/Hhh3ZdWAXZ9Y4k3YN2lVAoCIiIiVTgi8Lv5t998HdtHm+Dc45rxv+kvu4rPFl6oYXEZGYoQRfjFntIL0HbEuBprnwu+VwpApsWnw/T/Z+kgY1GzDlp1Po3rw7jU8v+Xl2ERGRoCjBFzGrHQy7Hg774+dyasPQGwCDi3LeI68gj+Qqydz6X7cGGqeIiEhpNNFNEek9fkjuxxg0OACr71xNcpXkQOISEREpCyX4IralFF++pya6xy4iIqGhBF9E09rNylQuIiISi5TgixjfY7zmhxcRkdBTgi9iULtBTL5+Ms1SmmEYzVKaMfn6yZpOVkREQkVT1YqIiIRUaVPV6gpeREQkDinBi4iIxCEleBERkTikBC8iIhKHlOBFRETikBK8iIhIHIpqgjezq81sk5llmdmYYvYnm9lcf/8qM0uN2PegX77JzHpHM04REZF4E7UEb2aJwCTgGqAtcLOZtS1y2FBgn3OuFfAU8Kj/3rbAQOB84GrgT/75RERE5ARE8wq+E5DlnMt2zuUDc4C+RY7pC8zwt18Fepi3oktfYI5zLs85twXI8s8nIiIiJyCaCf5s4POI19v9smKPcc4VALlA3RN8r4iIiJQg1IPszGyYmWWYWcbevXuDDkdERCRmRDPB7wCaRLxu7JcVe4yZVQFSgK9O8L045yY759Kcc2n169cvx9BFRETCLZoJfjXQ2syam1lVvEFz84scMx8Y4m/3B5Y5b/Wb+cBAf5R9c6A18GEUYxUREYkrVaJ1YudcgZmNABYDicBU59x6M/s9kOGcmw9MAV42syzga7w/AvCPmwdsAAqA4c6576MVq4iISLzRcrEiIiIhVdpysXGT4M1sL5ATdBwnqR7wZdBBlKN4qw+oTmGhOoVDvNUpyPo0c84VOwgtbhJ8mJlZRkl/gYVRvNUHVKewUJ3CId7qFKv1CfVjciIiIlI8JXgREZE4pAQfGyYHHUA5i7f6gOoUFqpTOMRbnWKyProHLyIiEod0BS8iIhKHlOArgJltNbN1ZrbGzDL8sjPMbImZfeb/W8cvNzN71syyzGytmXUMNnqPmU01sz1m9klEWZnrYGZD/OM/M7MhxX1WRSmhTuPMbIffVmvMrE/Evgf9Om0ys94R5Vf7ZVlmNqai6xERRxMzW25mG8xsvZn90i8PbTuVUqcwt9NpZvahmX3s1+lhv7y5ma3y45vrzwCKP6PnXL98lZmlRpyr2LpWtFLqNN3MtkS0Uwe/POZ/9/xYEs3sIzNb4L8OVxs55/QT5R9gK1CvSNljwBh/ewzwqL/dB/gHYMClwKqg4/fj6gp0BD452ToAZwDZ/r91/O06MVanccCoYo5tC3wMJAPNgc14MzQm+tstgKr+MW0Dqk9DoKO/XQv4tx93aNuplDqFuZ0MqOlvJwGr/P/+84CBfvkLwN3+9j3AC/72QGBuaXWNsTpNB/oXc3zM/+758dwPvAIs8F+Hqo10BR+cvsAMf3sGcENE+Uzn+SdQ28waBhFgJOfce3jTCUcqax16A0ucc1875/YBS4Crox998UqoU0n6AnOcc3nOuS1AFtDJ/8lyzmU75/KBOf6xFc45t8s59y9/+wDwKd4yy6Ftp1LqVJIwtJNzzh30Xyb5Pw7oDrzqlxdtp8L2exXoYWZGyXWtcKXUqSQx/7tnZo2Ba4H/9V8bIWsjJfiK4YC3zCzTzIb5ZQ2cc7v87S+ABv722cDnEe/dTulfaEEqax3CUrcRfrfh1MLubEJWJ7+L8EK8K6m4aKcidYIQt5Pf9bsG2IOXxDYD+51zBcXEdyx2f38uUJcYr5NzrrCdxvvt9JSZJftlYWinp4EHgKP+67qErI2U4CvGT5xzHYFrgOFm1jVyp/P6ckL9OEM81MH3Z6Al0AHYBTwRbDhlZ2Y1gdeAXznnvoncF9Z2KqZOoW4n59z3zrkOeEthdwLODTikU1a0TmZ2AfAgXt0uxut2Hx1giCfMzK4D9jjnMoOO5VQowVcA59wO/989wBt4/0PvLux69//d4x++A2gS8fbGflksKmsdYr5uzrnd/hfVUeAlfuhOC0WdzCwJLxHOcs697heHup2Kq1PY26mQc24/sBy4DK+bunCFz8j4jsXu708BviL263S1f4vFOefygGmEp506Az81s614t3O6A88QsjZSgo8yM6thZrUKt4FewCd4a94XjhAdAvzN354P3OqPMr0UyI3oXo01Za3DYqCXmdXxu1R7+WUxo8h4h354bQVenQb6o2WbA62BD4HVQGt/dG1VvAE28ysy5kL+Pb8pwKfOuScjdoW2nUqqU8jbqb6Z1fa3qwE98cYWLAf6+4cVbafC9usPLPN7Ykqqa4UroU4bI/6wNLz71ZHtFLO/e865B51zjZ1zqXi/K8ucc4MIWxuV12g9/ZQ4CrMF3ijKj4H1QLpfXhdYCnwGvA2c4ZcbMAnvntw6IC3oOvhxzcbrCj2Cdx9p6MnUAbgdb6BJFnBbDNbpZT/mtXj/czaMOD7dr9Mm4JqI8j54o7s3F7ZvQPX5CV73+1pgjf/TJ8ztVEqdwtxO7YGP/Ng/AX7nl7fA+/LPAv4KJPvlp/mvs/z9LY5X1xiq0zK/nT4B/sIPI+1j/ncvIp4r+GEUfajaSDPZiYiIxCF10YuIiMQhJXgREZE4pAQvIiISh5TgRURE4pASvIiISBxSgheJUWaWbt7KXGvNW4nrkqBjOhXmrSzW//hHnvT5rzCzyyvq80RiXZXjHyIiFc3MLgOuw1tJLc/M6uGtgiYluwI4CKwMOA6RmKAreJHY1BD40nlTfOKc+9I5txPAzC4ys3f9xYsWR8wWdpF563F/bGYTzV/n3sz+x8yeLzyxmS0wsyv87V5m9oGZ/cvM/urP+Y6ZbTWzh/3ydWZ2rl9e08ym+WVrzey/SzvP8Zi3QMlEM1vtn+8XfvkVZvaOmb1qZhvNbJY/Gxpm1scvyzRvTfEF5i1Ecxcw0u/t6OJ/RFczW2lm2bqal8pGCV4kNr0FNDGzf5vZn8ysGxybl/05vDW2LwKmAuP990wD7nXO/deJfIDfK/Bb4CrnLYaUgbf+daEv/fI/A6P8sofwphVt55xrDyw7gfOUZqh/vovxFiS505/SE7yV436Ft6Z2C6CzmZ0GvIg3I9hFQH0A59xWvPW5n3LOdXDOrfDP0RBvNrzrgAknGJNIXFAXvUgMcs4dNLOLgC7AlcBcMxuDlzwvAJb4F7SJwC5/HvDazlvjHrypXK85zsdcipc83/fPVRX4IGJ/4WI1mcDP/O2r8ObmLoxzn3krb5V2ntL0AtpHXF2n4M3XnQ986JzbDmDeMqSpeF3w2c5bWxu86YaHUbI3nbcgzQYza1DKcSJxRwleJEY5574H3gHeMbN1eItZZALrnXOXRR5buNBHCQr4cW/daYVvw1u3++YS3pfn//s9pX9XHO88pTG8XocfLSji30LIiyg6XgwliTyHncT7RUJLXfQiMcjMzjGz1hFFHYAcvAUr6vuD8DCzJDM733lLdO43s5/4xw+KeO9WoIOZJZhZE35YsvOfeN3erfxz1TCzNscJbQkwPCLOOid5nkKLgbv9Ww+YWRvzVl0sySaghX/PHeCmiH0HgFon+LkicU8JXiQ21QRmmNkGM1uL1wU+zjmXj7cc5aNm9jHe6mqFj4bdBkzyu7Mjr1bfB7YAG4BngX8BOOf2Av8DzPY/4wPg3OPE9Uegjpl94n/+lWU8z4tmtt3/+QD4Xz+uf/mDAl+klCt159y3wD3AIjPLxEvquf7uvwP9igyyE6m0tJqcSBzyr3AXOOcuCDiUcmdmNf0xCoVLjn7mnHsq6LhEYo2u4EUkbO70eynW4w3KezHgeERikq7gRURE4pCu4EVEROKQEryIiEgcUoIXERGJQ0rwIiIicUgJXkREJA4pwYuIiMSh/w/z2/vpxR2togAAAABJRU5ErkJggg==\n","text/plain":["<Figure size 576x576 with 1 Axes>"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":513},"id":"jvd4EL0QqwDw","executionInfo":{"status":"ok","timestamp":1625430084492,"user_tz":-180,"elapsed":1139,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"96dffe37-5f8d-46e8-f848-a5ae5db9e591"},"source":["plotMe(results,\"Memory\")"],"execution_count":9,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 576x576 with 1 Axes>"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"markdown","metadata":{"id":"KxyUgJtyRl8p"},"source":["# Reformer"]},{"cell_type":"markdown","metadata":{"id":"Ol_CyokoRvjM"},"source":[""]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"gE7pezLmRvy-","executionInfo":{"status":"ok","timestamp":1625430351786,"user_tz":-180,"elapsed":5790,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"888436d1-53a8-42d2-a512-101cb238f779"},"source":["# pip installs\n","!pip install transformers\n","!pip install py3nvml"],"execution_count":2,"outputs":[{"output_type":"stream","text":["Requirement already satisfied: transformers in /usr/local/lib/python3.7/dist-packages (4.8.2)\n","Requirement already satisfied: sacremoses in /usr/local/lib/python3.7/dist-packages (from transformers) (0.0.45)\n","Requirement already satisfied: tokenizers<0.11,>=0.10.1 in /usr/local/lib/python3.7/dist-packages (from transformers) (0.10.3)\n","Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from transformers) (3.13)\n","Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from transformers) (20.9)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (1.19.5)\n","Requirement already satisfied: huggingface-hub==0.0.12 in /usr/local/lib/python3.7/dist-packages (from transformers) (0.0.12)\n","Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from transformers) (2.23.0)\n","Requirement already satisfied: importlib-metadata; python_version < \"3.8\" in /usr/local/lib/python3.7/dist-packages (from transformers) (4.5.0)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from transformers) (3.0.12)\n","Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (2019.12.20)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.7/dist-packages (from transformers) (4.41.1)\n","Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.15.0)\n","Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.0.1)\n","Requirement already satisfied: click in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (7.1.2)\n","Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging->transformers) (2.4.7)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from huggingface-hub==0.0.12->transformers) (3.7.4.3)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2.10)\n","Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (3.0.4)\n","Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (1.24.3)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2021.5.30)\n","Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata; python_version < \"3.8\"->transformers) (3.4.1)\n","Requirement already satisfied: py3nvml in /usr/local/lib/python3.7/dist-packages (0.2.6)\n","Requirement already satisfied: xmltodict in /usr/local/lib/python3.7/dist-packages (from py3nvml) (0.12.0)\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"azY0UH-zRnM5","executionInfo":{"status":"ok","timestamp":1625430353504,"user_tz":-180,"elapsed":1721,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":["from transformers import ReformerConfig, PyTorchBenchmark, PyTorchBenchmarkArguments"],"execution_count":3,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"x8YNnYaHgHX0"},"source":["We will tweak some settings for the *Reformer* model to work in full-attention mode. When we set **lsh_attn_chunk_length**  and **local_attn_chunk_length** to 16384 which is maximum length that Reformer can process, in this case, the Reformer model will have no chance for local optimization and will automatically work like the vanilla transformers."]},{"cell_type":"code","metadata":{"id":"hVUsNVcTRreV","executionInfo":{"status":"ok","timestamp":1625430355642,"user_tz":-180,"elapsed":2141,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":["fullReformer = ReformerConfig.from_pretrained(\"google/reformer-enwik8\",\n","                                               lsh_attn_chunk_length=16384, \n","                                              local_attn_chunk_length=16384)\n","sparseReformer = ReformerConfig.from_pretrained(\"google/reformer-enwik8\")"],"execution_count":4,"outputs":[]},{"cell_type":"code","metadata":{"id":"oCw0iHxa99GE","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1625430359527,"user_tz":-180,"elapsed":615,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"1eddbaf8-f0ef-41a7-ae8b-3811edd9d2a9"},"source":["!nvidia-smi"],"execution_count":5,"outputs":[{"output_type":"stream","text":["Sun Jul  4 20:25:58 2021       \n","+-----------------------------------------------------------------------------+\n","| NVIDIA-SMI 465.27       Driver Version: 460.32.03    CUDA Version: 11.2     |\n","|-------------------------------+----------------------+----------------------+\n","| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\n","| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\n","|                               |                      |               MIG M. |\n","|===============================+======================+======================|\n","|   0  Tesla P100-PCIE...  Off  | 00000000:00:04.0 Off |                    0 |\n","| N/A   57C    P0    29W / 250W |      0MiB / 16280MiB |      0%      Default |\n","|                               |                      |                  N/A |\n","+-------------------------------+----------------------+----------------------+\n","                                                                               \n","+-----------------------------------------------------------------------------+\n","| Processes:                                                                  |\n","|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\n","|        ID   ID                                                   Usage      |\n","|=============================================================================|\n","|  No running processes found                                                 |\n","+-----------------------------------------------------------------------------+\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"aB65t-e-wa2l","executionInfo":{"status":"ok","timestamp":1625430366083,"user_tz":-180,"elapsed":837,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}}},"source":["sequence_lengths=[256, 512, 1024, 2048, 4096, 8192, 12000]\n","models=[\"fullReformer\",\"sparseReformer\"]\n","configs=[eval(e) for e in models]"],"execution_count":6,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"k0eWkgPaQYFk"},"source":["Indeed, Reformer can process the sequences up to length of 16384. Due to the accelerator capacity of our environment, the attention matrix does not fit on GPU, and we get CUDA out of memory warning.  "]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"a_xoNs7uSM2h","executionInfo":{"status":"ok","timestamp":1625430778315,"user_tz":-180,"elapsed":409484,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"f7c6ed98-490d-472f-ce03-a2ab299171dc"},"source":["benchmark_args = PyTorchBenchmarkArguments(\n","    sequence_lengths=sequence_lengths,\n","    batch_sizes=[1],\n","    models=models)\n","benchmark = PyTorchBenchmark(\n","    configs=configs, \n","    args=benchmark_args)\n","results = benchmark.run()"],"execution_count":7,"outputs":[{"output_type":"stream","text":["1 / 2\n","2 / 2\n"],"name":"stdout"},{"output_type":"stream","text":["/usr/local/lib/python3.7/dist-packages/transformers/models/reformer/modeling_reformer.py:1164: UserWarning: where received a uint8 condition tensor. This behavior is deprecated and will be removed in a future version of PyTorch. Use a boolean condition instead. (Triggered internally at  /pytorch/aten/src/ATen/native/TensorCompare.cpp:255.)\n","  query_key_dots = torch.where(mask, query_key_dots, mask_value)\n","/usr/local/lib/python3.7/dist-packages/transformers/models/reformer/modeling_reformer.py:1164: UserWarning: where received a uint8 condition tensor. This behavior is deprecated and will be removed in a future version of PyTorch. Use a boolean condition instead. (Triggered internally at  /pytorch/aten/src/ATen/native/TensorCompare.cpp:255.)\n","  query_key_dots = torch.where(mask, query_key_dots, mask_value)\n"],"name":"stderr"},{"output_type":"stream","text":["\n","====================       INFERENCE - SPEED - RESULT       ====================\n","--------------------------------------------------------------------------------\n","          Model Name             Batch Size     Seq Length     Time in s   \n","--------------------------------------------------------------------------------\n","         fullReformer                1              256            0.019     \n","         fullReformer                1              512            0.035     \n","         fullReformer                1              1024           0.073     \n","         fullReformer                1              2048           0.192     \n","         fullReformer                1              4096           0.525     \n","         fullReformer                1              8192           1.722     \n","         fullReformer                1             12000           3.453     \n","        sparseReformer               1              256            0.021     \n","        sparseReformer               1              512            0.045     \n","        sparseReformer               1              1024           0.081     \n","        sparseReformer               1              2048           0.161     \n","        sparseReformer               1              4096            0.29     \n","        sparseReformer               1              8192           0.563     \n","        sparseReformer               1             12000           0.852     \n","--------------------------------------------------------------------------------\n","\n","====================      INFERENCE - MEMORY - RESULT       ====================\n","--------------------------------------------------------------------------------\n","          Model Name             Batch Size     Seq Length    Memory in MB \n","--------------------------------------------------------------------------------\n","         fullReformer                1              256             1531     \n","         fullReformer                1              512             1573     \n","         fullReformer                1              1024            1693     \n","         fullReformer                1              2048            2117     \n","         fullReformer                1              4096            3797     \n","         fullReformer                1              8192            8405     \n","         fullReformer                1             12000           16165     \n","        sparseReformer               1              256             1531     \n","        sparseReformer               1              512             1711     \n","        sparseReformer               1              1024            1891     \n","        sparseReformer               1              2048            2329     \n","        sparseReformer               1              4096            3165     \n","        sparseReformer               1              8192            4823     \n","        sparseReformer               1             12000            6389     \n","--------------------------------------------------------------------------------\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"3cI5ksLZUgfi","colab":{"base_uri":"https://localhost:8080/","height":513},"executionInfo":{"status":"ok","timestamp":1625430828298,"user_tz":-180,"elapsed":878,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"14f2f8e1-eba8-4762-e067-e530aaf2986c"},"source":["plotMe(results)"],"execution_count":8,"outputs":[{"output_type":"display_data","data":{"image/png":"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GKVuT83z9c27N5/S+zZu3Jj77ruPoUOH0qNHD9q1awdA3759c/+85557vAypqVx11VWsW7eOvXv3HrJd6MHbfSYkJDBy5EhSU1O54oorqFu3LlOmTOGHH36gVatWAOzevZuqVavmfn3Hjh3ZsmULpUuX5qmnngKOvb3oAStWrKBWrVq5a73fcMMNjBkzhiFDhgAccbq9Z8+euT/3zp07KVOmDGXKlKF48eJs27aNyZMnM3nyZJo399b72blzJ7/99htxcXHUrFmTNm2OubquiEjw69kTunWDg3aILGxhWeJTb5x61M/FlYsjOf3ICV81y9UEoHLJysf8+qOpV68eCxcu5L///S+PPPIInTt3BsDMco858Piuu+7i3nvvpWfPnkydOpXHH38895iDt/u85pprOPfcc/nyyy+55JJLeO2113DOccMNN/D000/nmSMpKYny5cvTr18/HnvsMZ5//vljbi+aX0fb1vTgLU0PPM/KysI5x7Bhw7j11lsP+brVq1drS1MRCW3Jyd6W1ddf72uBQwReEx/ZeSQlo0se8lrJ6JKM7DzylN537dq1lCxZkmuvvZYHHnggdzvSA7O+P/zwQxISEgBIT0+nevXqAIwfn+fuqwD88ccf1K5dm7vvvptLL72UxYsX07lzZz755BM2btwIwJYtW46YhV60aFFGjRrFu+++y5YtW/K1vehZZ53F6tWrc6/bv/fee7Rv3/5k/zro1q0bb731Vu6If82aNbmZRURClnNwyy0waFDAZ57nR1iOxI+lX+N+AAyfMpyU9BTiysUxsvPI3NdP1pIlS3jggQcoUqQI0dHRvPrqq/Tu3ZutW7fSpEkTihcvzoQJEwBvAlufPn2oUKECnTp1Ouqe4x999BHvvfce0dHRVKtWjYcffpiKFSsyYsQIunbtSnZ2NtHR0YwZM4aaNWse8rWnn346ffv2ZcyYMbz00kvceeedNGnShKysLC644IIjthiNiYnh7bffpk+fPmRlZdGqVStuu+22k/776Nq1K8uXL8/9xaV06dK8//77REVFnfR7ioj47s034dtv4ZVXfJmNfriAbUUaKKG0FWl8fDwLFiygcuXKfkcJGcH6bykiQmoqNGwI55wD330HRQrvZPbRtiKNuNPpIiIiJ8w5uPVWyMqCceMKtcCPJeJOpxem1atX+x1BREQKghncdhtceSXU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\n","text/plain":["<Figure size 576x576 with 1 Axes>"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":513},"id":"3Cu1pr2-1mbn","executionInfo":{"status":"ok","timestamp":1625430833321,"user_tz":-180,"elapsed":678,"user":{"displayName":"Savas Yıldırım","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GhdhYZMfq-hvK2xI7HqkzvJuCbfgFrIs4wypQEm5w=s64","userId":"10717726124681851716"}},"outputId":"59382c30-b029-4f8e-8057-6d83e5a3de4f"},"source":["plotMe(results,\"Memory Footprint\")"],"execution_count":9,"outputs":[{"output_type":"display_data","data":{"image/png":"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xRfzxBNPnPGzZs2axSWXXELt2rU5cOBA9nwDIiISdqKviJcpA2YnP8qUOafLDhkyhG+++YZRo0ad9XsbN27MokWL+Pnnn5k4cSI//vhjpuePGjWK3r17s2jRIvLly3fG66ekpJx1ppy8noiIZE30FfHNm8/ueAB69OjB6tWrad26NUWKFKF///7HXqtRowZr164N6Dr58uWjdu3abNy4EYCpU6fSqFEj6tSpQ6dOndi7dy/vvfceX3zxBf/4xz/o0qULzjmefPJJatSoQc2aNfn8888Br4XfuHFj2rVrR/Xq1ZkxYwZNmzalffv2VKpUiWeeeYZRo0ZRv359atasyapVqwBITk6mY8eO1KtXj3r16h37heL555/ntttu44orruC2227L8s9KRESyT0SMTj9Js2YnH7vpJrj//jO/d+tWuPHG44/NmJHpW4YOHcrXX3/N9OnTefvttwOOeaIdO3awYsUKmjRpwtatW3nppZf49ttvKVCgAK+++ioDBgzgueee44cffqBt27bceOONjBkzhkWLFvHLL7+wdetW6tWrR5MmTQBYuHAhv//+OxdccAEzZszgl19+ITExkeLFi1OpUiXuuece5s2bx5tvvslbb73FwIEDeeSRR3jssce48sorWb9+Pa1atSIxMRGAJUuW8MMPPwTU+hcRkeCLzCIeZmbNmsWll17KihUrePTRRylTpgwTJ05kyZIlXHHFFQAcPnyYRo0anfTeH374gc6dOxMbG0vp0qVp2rQp8+fPp3DhwtSvX/+46Vr16tWjbNmyAFSuXJmWLVsCULNmTaZPnw7At99+y5IlS469Z/fu3ezduxeAdu3aqYCLiISQyCziZ2g5Z6pkyXN6f65cuUhLSzv2PJApU40bN2bixImsWbOGhg0bctNNN+Gco0WLFnz66adZzlKgQIHjnufJk+fY1zExMceex8TEHLvPnZaWxty5c8mbN+8ZryciIv6KvnviQZaQkMDChQsBrzt7zZo1Ab/3ggsu4JlnnuHVV1+lYcOG/Pjjj6xcuRKAffv2sXz58pPe07hxYz7//HNSU1NJTk5m5syZ1K9fP8v5W7ZsyVtvvXXs+aJFi7J8LRERCa7oK+KlS5/d8bPUsWNHtm/fziWXXMLbb79NlSpVzur9PXr0YObMmezbt48RI0bQuXNnatWqRaNGjVi6dOlJ53fo0IFatWpx6aWXctVVV/Haa69R5hxG2g8aNIgFCxZQq1YtqlevztChQ7N8LRERCS5zzvmd4azUrVvXnbifeGJiItWqVfMpkWQn/V2KSFgqU+bUs5xKl4Y//zzny5vZT865uicej76WuIiISHYLwvTlQKiIi4iIhCkVcRERkTClIi4iIhKmVMRFRETClIq4iIjIuQry9OXTURGPIAkJCdSsWZNatWrRtGlT1q1bl+n5hw4d4uqrr6Z27drHNk4REZGzNG8e/PEHOHfyIxuml2UmKov4qN9GkTAwgZi+MSQMTGDUb2e/fWiwZXW7z+nTp/Prr7/SrFkzXnrppUzP/fnnnwFvVbabb745oOunpqZmKdepOOeOW6JWRCTszJoFDRrA8OG+fHzUFfFRv42i+4TurNu1Dodj3a51dJ/Q/ZwL+b59+7j22mu59NJLqVGjBp9//jkJCQk89dRT1KxZk/r16x9bQnXChAk0aNCAyy67jKuvvprN6fMIT9zuc/HixdSvX5/atWtTq1YtVqxYAcDHH3987Ph99913ysLaqFGjY1uanmp70S1bttC1a1fmz59P7dq1WbVqFdOmTeOyyy6jZs2a3HXXXRw6dAjwWvhPP/00derU4csvvyQhIYHevXtTu3Zt6taty8KFC2nVqhWVK1c+boW3119/nXr16lGrVi369OkDwNq1a6latSq33347NWrUYMOGDef0cxcR8c3hw3DffRAfD127+pPBORdWj8svv9ydaMmSJcc9b/pB05Meg+cNds45V2FABcfznPQo8WoJ55xzyfuST3pvIEaPHu3uueeeY8937tzp4uPj3UsvveScc27kyJHu2muvdc45t337dpeWluacc+7dd991jz/+uHPOuT59+rg6deq4/fv3O+ece/DBB93HH3/snHPu0KFDbv/+/W7JkiWubdu27vDhw84553r27OlGjhzpnHMuPj7eJScnO+ece+SRR9ywYcOcc8517tzZzZo1yznn3Lp169zFF1/snHNu+vTpxzIdOHDAlS9f3i1btsw559xtt93m/vWvfx277quvvnrse4uPj3dDhgxxzjn36KOPupo1a7rdu3e7LVu2uPPOO88559yUKVPcvffe69LS0lxqaqq79tpr3ffff+/WrFnjzMzNmTPnlD/HE/8uRURC1osvep3mkyYF/aOABe4UNTEydzHLRNLupFMe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\n","text/plain":["<Figure size 576x576 with 1 Axes>"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"code","metadata":{"id":"HWXdKvIZWQ08"},"source":[""],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"4HLD9LJBYpEc"},"source":[""],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"ARHAgjt2YrNE"},"source":[""],"execution_count":null,"outputs":[]}]}